From 7f9476c52ea80d47d7373fc1ace6583bd4c7402c Mon Sep 17 00:00:00 2001 From: Bojan Mojsilovic Date: Mon, 5 Feb 2024 18:48:25 +0100 Subject: [PATCH] Allow max two line breaks in a note --- src/components/ParsedNote/ParsedNote.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/ParsedNote/ParsedNote.tsx b/src/components/ParsedNote/ParsedNote.tsx index 9513a76..19addfc 100644 --- a/src/components/ParsedNote/ParsedNote.tsx +++ b/src/components/ParsedNote/ParsedNote.tsx @@ -193,8 +193,11 @@ const ParsedNote: Component<{ const updateContent = (contentArray: NoteContent[], type: string, token: string, meta?: Record) => { if (contentArray.length > 0 && contentArray[contentArray.length -1].type === type) { + setContent(content.length -1, 'tokens' , (els) => [...els, token]); + meta && setContent(content.length -1, 'meta' , () => ({ ...meta })); + return; } @@ -206,11 +209,12 @@ const ParsedNote: Component<{ const parseToken = (token: string) => { if (token === '__LB__') { lastSignificantContent !== 'image' && updateContent(content, 'linebreak', token); + lastSignificantContent = 'LB'; return; } if (token === '__SP__') { - lastSignificantContent !== 'image' && updateContent(content, 'text', ' '); + !['image', 'LB'].includes(lastSignificantContent) && updateContent(content, 'text', ' '); return; } @@ -370,8 +374,12 @@ const ParsedNote: Component<{ const renderLinebreak = (item: NoteContent) => { if (isNoteTooLong()) return; - // Allow only one consecutive linebreak - return
+ // Allow max consecutive linebreak + const len = Math.min(2, item.tokens.length); + + const lineBreaks = Array(len).fill(
) + + return {_ =>
}
}; const renderText = (item: NoteContent) => {