From 78796e72a6a994c4db03f8e0813805ae870dc5c6 Mon Sep 17 00:00:00 2001 From: Dimitri Date: Fri, 21 Mar 2025 18:54:33 +0700 Subject: [PATCH] fix: cannot edit max length --- .../createBlueprintSteps/ExtractFields.tsx | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/app/create/[id]/createBlueprintSteps/ExtractFields.tsx b/src/app/create/[id]/createBlueprintSteps/ExtractFields.tsx index 5255742..d1a29fd 100644 --- a/src/app/create/[id]/createBlueprintSteps/ExtractFields.tsx +++ b/src/app/create/[id]/createBlueprintSteps/ExtractFields.tsx @@ -99,6 +99,9 @@ const ExtractFields = ({ const [regexGeneratedOutputs, setRegexGeneratedOutputs] = useState( Array(store.decomposedRegexes?.length ?? 0).fill('') ); + const [regexGeneratedOutputErrors, setRegexGeneratedOutputErrors] = useState( + Array(store.decomposedRegexes?.length ?? 0).fill('') + ); const [isExtractSubjectChecked, setIsExtractSubjectChecked] = useState(false); const [isExtractReceiverChecked, setIsExtractReceiverChecked] = useState(false); @@ -143,6 +146,9 @@ const ExtractFields = ({ revealPrivateFields ); + const outputUpdated = + JSON.stringify(regexOutputs) !== JSON.stringify(regexGeneratedOutputs[index]); + setRegexGeneratedOutputs((prev) => { const updated = [...prev]; // @ts-ignore @@ -150,16 +156,27 @@ const ExtractFields = ({ return updated; }); + setRegexGeneratedOutputErrors((prev) => { + const updated = [...prev]; + // @ts-ignore + updated[index] = ''; + return updated; + }); + // update the max length of the regex at that particular index - const decomposedRegexes = [...store.decomposedRegexes]; - decomposedRegexes[index].maxLength = regexOutputs[0].length ?? 64; - setField('decomposedRegexes', decomposedRegexes); + // Only update when the output changes, so we can still set maxLength + if (outputUpdated) { + const totalLength = regexOutputs.reduce((acc, cur) => (acc += cur.length), 0); + const decomposedRegexes = [...store.decomposedRegexes]; + decomposedRegexes[index].maxLength = totalLength ?? 64; + setField('decomposedRegexes', decomposedRegexes); + } } catch (error) { console.error('Error testing decomposed regex:', error); - setRegexGeneratedOutputs((prev) => { + setRegexGeneratedOutputErrors((prev) => { const updated = [...prev]; // @ts-ignore - updated[index] = ['Error: ' + error]; + updated[index] = 'Error: ' + error; return updated; }); } @@ -576,6 +593,9 @@ const ExtractFields = ({ setField('decomposedRegexes', updatedRegexes); setRegexGeneratedOutputs(regexGeneratedOutputs.filter((_, i) => i !== index)); + setRegexGeneratedOutputErrors( + regexGeneratedOutputErrors.filter((_, i) => i !== index) + ); }} > Delete @@ -792,13 +812,13 @@ const ExtractFields = ({
- {JSON.stringify(regexGeneratedOutputs[index]).includes('Error: ') - ? JSON.stringify(regexGeneratedOutputs[index]) + {regexGeneratedOutputErrors[index] + ? JSON.stringify(regexGeneratedOutputErrors[index]) : regexGeneratedOutputs ? `${regex.name}: ${JSON.stringify(regexGeneratedOutputs[index])}` : ''}