From c20ed24077c181ec04e7a95dd1222a7d3ed60659 Mon Sep 17 00:00:00 2001 From: Jeff Scott Ward Date: Mon, 2 Mar 2026 20:44:18 -0500 Subject: [PATCH] fix: resolve remaining PR 496 CSV renderer issues --- src/renderer/components/CsvTableRenderer.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/CsvTableRenderer.tsx b/src/renderer/components/CsvTableRenderer.tsx index 1a3b8c319..d25ea294b 100644 --- a/src/renderer/components/CsvTableRenderer.tsx +++ b/src/renderer/components/CsvTableRenderer.tsx @@ -82,7 +82,9 @@ function isNumericValue(value: string): boolean { const trimmed = value.trim(); if (trimmed === '') return false; // Match: optional currency/sign prefix, digits with optional commas, optional decimal, optional suffix - return /^[($\-]*[\d,]+(\.\d+)?[%)]*$/.test(trimmed); + return /^(?:-?\$?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?%?|\(\$?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?\)%?)$/.test( + trimmed + ); } /** @@ -149,8 +151,8 @@ function highlightMatches(text: string, query: string, accentColor: string): Rea // Use running character offset as key to guarantee uniqueness across // identical substrings appearing at different positions. let offset = 0; - return parts.map((part) => { - const key = offset; + return parts.map((part, index) => { + const key = `${offset}-${index}`; offset += part.length; return regex.test(part) ? (