Allow max two line breaks in a note

This commit is contained in:
Bojan Mojsilovic 2024-02-05 18:48:25 +01:00
parent 9b5e8fea5c
commit 7f9476c52e

View File

@ -193,8 +193,11 @@ const ParsedNote: Component<{
const updateContent = (contentArray: NoteContent[], type: string, token: string, meta?: Record<string, any>) => { const updateContent = (contentArray: NoteContent[], type: string, token: string, meta?: Record<string, any>) => {
if (contentArray.length > 0 && contentArray[contentArray.length -1].type === type) { if (contentArray.length > 0 && contentArray[contentArray.length -1].type === type) {
setContent(content.length -1, 'tokens' , (els) => [...els, token]); setContent(content.length -1, 'tokens' , (els) => [...els, token]);
meta && setContent(content.length -1, 'meta' , () => ({ ...meta })); meta && setContent(content.length -1, 'meta' , () => ({ ...meta }));
return; return;
} }
@ -206,11 +209,12 @@ const ParsedNote: Component<{
const parseToken = (token: string) => { const parseToken = (token: string) => {
if (token === '__LB__') { if (token === '__LB__') {
lastSignificantContent !== 'image' && updateContent(content, 'linebreak', token); lastSignificantContent !== 'image' && updateContent(content, 'linebreak', token);
lastSignificantContent = 'LB';
return; return;
} }
if (token === '__SP__') { if (token === '__SP__') {
lastSignificantContent !== 'image' && updateContent(content, 'text', ' '); !['image', 'LB'].includes(lastSignificantContent) && updateContent(content, 'text', ' ');
return; return;
} }
@ -370,8 +374,12 @@ const ParsedNote: Component<{
const renderLinebreak = (item: NoteContent) => { const renderLinebreak = (item: NoteContent) => {
if (isNoteTooLong()) return; if (isNoteTooLong()) return;
// Allow only one consecutive linebreak // Allow max consecutive linebreak
return <br /> const len = Math.min(2, item.tokens.length);
const lineBreaks = Array(len).fill(<br/>)
return <For each={lineBreaks}>{_ => <br/>}</For>
}; };
const renderText = (item: NoteContent) => { const renderText = (item: NoteContent) => {