From 83b83cd96dddea970dd280379b3faa948cff48fa Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Sat, 5 Aug 2023 01:43:55 +0530 Subject: [PATCH] chore: don't show convert as-is button when changing to super if text is not json --- .../SuperEditor/SuperNoteImporter.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx index ade3f2897..9b56c7a46 100644 --- a/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperNoteImporter.tsx @@ -18,8 +18,18 @@ type Props = { onComplete: () => void } +function isValidJson(string: string) { + try { + JSON.parse(string) + } catch (e) { + return false + } + return true +} + export const SuperNoteImporter: FunctionComponent = ({ note, application, closeDialog, onComplete }) => { const isSeamlessConvert = note.text.length === 0 + const canBeConvertedAsIs = isValidJson(note.text) const [lastValue, setLastValue] = useState({ text: '', previewPlain: '' }) const format = @@ -79,8 +89,8 @@ export const SuperNoteImporter: FunctionComponent = ({ note, application, onComplete() }, [closeDialog, application, note, onComplete, performConvert]) - const modalActions: ModalAction[] = useMemo( - () => [ + const modalActions = useMemo( + (): ModalAction[] => [ { label: 'Cancel', onClick: closeDialog, @@ -97,9 +107,10 @@ export const SuperNoteImporter: FunctionComponent = ({ note, application, label: 'Convert As-Is', onClick: convertAsIs, type: 'secondary', + hidden: !canBeConvertedAsIs, }, ], - [closeDialog, confirmConvert, convertAsIs], + [canBeConvertedAsIs, closeDialog, confirmConvert, convertAsIs], ) if (isSeamlessConvert) {