From 3146ae48a7d5733b499c33f56af3841db909c32c Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Thu, 15 Jan 2026 14:10:05 +0100 Subject: [PATCH] fix(proofread): support replace text with space (#2965) --- .../src/__tests__/components/ProofreadRules.test.tsx | 8 ++++---- .../src/app/reader/components/ProofreadRules.tsx | 4 ++-- .../app/reader/components/annotator/ProofreadPopup.tsx | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx b/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx index 9d4fe036..d1b64ab8 100644 --- a/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx +++ b/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx @@ -150,9 +150,9 @@ describe('ProofreadRulesManager', () => { expect(dialog).toBeTruthy(); // Library (global) rules expect(screen.getByText('foo')).toBeTruthy(); - expect(screen.getByText('bar')).toBeTruthy(); + expect(screen.getByText("'bar'")).toBeTruthy(); expect(screen.getByText('hello')).toBeTruthy(); - expect(screen.getByText('world')).toBeTruthy(); + expect(screen.getByText("'world'")).toBeTruthy(); }); it('renders selection rules separately from book/library rules', async () => { @@ -231,11 +231,11 @@ describe('ProofreadRulesManager', () => { // Single Instance Rules section expect(screen.getByText('Selected Text Rules')).toBeTruthy(); expect(screen.getByText('only-once')).toBeTruthy(); - expect(screen.getByText('single-hit')).toBeTruthy(); + expect(screen.getByText("'single-hit'")).toBeTruthy(); // Book section should still show book-wide rule expect(screen.getByText('book-wide')).toBeTruthy(); - expect(screen.getByText('book-hit')).toBeTruthy(); + expect(screen.getByText("'book-hit'")).toBeTruthy(); }); it('displays correct scope labels for different rule types', async () => { diff --git a/apps/readest-app/src/app/reader/components/ProofreadRules.tsx b/apps/readest-app/src/app/reader/components/ProofreadRules.tsx index 89d3692b..dc795442 100644 --- a/apps/readest-app/src/app/reader/components/ProofreadRules.tsx +++ b/apps/readest-app/src/app/reader/components/ProofreadRules.tsx @@ -88,12 +88,12 @@ const RuleItem: React.FC<{ return (
-
{rule.pattern}
+
{rule.pattern}
{_('Replace with:')} - {rule.replacement} + {"'" + rule.replacement + "'"}
diff --git a/apps/readest-app/src/app/reader/components/annotator/ProofreadPopup.tsx b/apps/readest-app/src/app/reader/components/annotator/ProofreadPopup.tsx index c1ca769e..f1792d25 100644 --- a/apps/readest-app/src/app/reader/components/annotator/ProofreadPopup.tsx +++ b/apps/readest-app/src/app/reader/components/annotator/ProofreadPopup.tsx @@ -125,7 +125,7 @@ const ProofreadPopup: React.FC = ({ >
- {_('Selected text:')} + {_('Selected text:')} "{selection?.text || ''}" @@ -141,7 +141,7 @@ const ProofreadPopup: React.FC = ({ value={replacementText} onChange={handleInputChange} onKeyDown={(e) => { - if (e.key === 'Enter' && replacementText.trim()) { + if (e.key === 'Enter' && replacementText) { handleApply(); } }} @@ -153,7 +153,7 @@ const ProofreadPopup: React.FC = ({ />