diff --git a/src/components/Workbench.tsx b/src/components/Workbench.tsx index 00ded2d..6a7cb0a 100644 --- a/src/components/Workbench.tsx +++ b/src/components/Workbench.tsx @@ -512,6 +512,7 @@ export function Workbench({ localeMap: { de: {} }, }); const [filter, setFilter] = useState(""); + const [showOnlyMissing, setShowOnlyMissing] = useState(false); const [status, setStatus] = useState(""); const [glossary, setGlossary] = useState(() => { try { @@ -585,7 +586,7 @@ export function Workbench({ const target = workspace.localeMap[effectiveTargetLanguage] ?? {}; const allKeys = new Set([...Object.keys(source), ...Object.keys(target)]); const query = filter.trim().toLocaleLowerCase("en"); - const values = Array.from(allKeys) + return Array.from(allKeys) .sort((left, right) => left.localeCompare(right)) .map((path) => ({ key: path, @@ -599,10 +600,11 @@ export function Workbench({ row.source.toLocaleLowerCase("en").includes(query) || row.target.toLocaleLowerCase("en").includes(query), ) + .filter((row) => (!showOnlyMissing ? true : !row.target.trim())) .slice(0, MAX_PATH_ROWS); - return values; }, [ filter, + showOnlyMissing, workspace.localeMap, effectiveSourceLanguage, effectiveTargetLanguage, @@ -912,6 +914,14 @@ export function Workbench({ placeholder="Search keys or text" /> + {formatCount(glossaryRows.length)} rows ยท{" "} {formatCount(totalMissing)} missing