Skip to content

Commit f43fbfc

Browse files
authored
Merge pull request #8 from johnSamilin/master
2.1.0
2 parents dbef902 + c2cdc27 commit f43fbfc

File tree

4 files changed

+33
-3
lines changed

4 files changed

+33
-3
lines changed

src/App.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,11 @@ const App = observer(() => {
149149
}, [settingsStore.syncMode, settingsStore.server, settingsStore.webDAV]);
150150

151151
useEffect(() => {
152-
if (editor && notesStore.selectedNote) {
152+
if (editor && notesStore.selectedNote && !notesStore.isLoadingNoteContent) {
153153
// Load note content if not already loaded
154154
if (!notesStore.selectedNote.content) {
155155
notesStore.loadNoteContent(notesStore.selectedNote);
156+
return; // Don't set content until loading is complete
156157
}
157158

158159
if (notesStore.selectedNote.isCensored && settingsStore.isCensorshipEnabled()) {
@@ -180,7 +181,7 @@ const App = observer(() => {
180181
}
181182
setAutoZenDisabled(false);
182183
}
183-
}, [editor, notesStore.selectedNote, settingsStore.isCensorshipEnabled()]);
184+
}, [editor, notesStore.selectedNote, settingsStore.isCensorshipEnabled(), notesStore.isLoadingNoteContent]);
184185

185186
useEffect(() => {
186187
if (!settingsStore.isZenMode) {

src/components/Editor/Editor.css

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,4 +364,28 @@
364364

365365
.zen-mode .language-selector {
366366
left: 8rem;
367+
}
368+
369+
.note-loading-overlay {
370+
position: absolute;
371+
top: 0;
372+
left: 0;
373+
right: 0;
374+
bottom: 0;
375+
background: rgba(255, 255, 255, 0.9);
376+
display: flex;
377+
align-items: center;
378+
justify-content: center;
379+
z-index: 10;
380+
}
381+
382+
.note-loading-message {
383+
padding: 1rem 2rem;
384+
background: var(--color-white);
385+
border-radius: 0.5rem;
386+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
387+
border: 1px solid var(--color-border);
388+
color: var(--color-text);
389+
font-family: 'Outfit', system-ui, sans-serif;
390+
font-size: 0.875rem;
367391
}

src/components/Editor/Editor.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ export const Editor: FC<EditorProps> = observer(({
405405
<button
406406
onClick={handleNextNote}
407407
className="button-icon"
408-
disabled={!hasNext}
409408
title="Next note"
410409
>
411410
<ArrowRight className="h-4 w-4" />

src/stores/NotesStore.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export class NotesStore {
1818
focusedNotebookId: string | null = null;
1919
isEditing = false;
2020
isLoading = false;
21+
isLoadingNoteContent = false;
2122
private notebooksByParentId = new Map<string | null, Notebook[]>();
2223
private notesByNotebookId = new Map<string | null, Note[]>();
2324

@@ -29,6 +30,7 @@ export class NotesStore {
2930
focusedNotebookId: observable,
3031
isEditing: observable,
3132
isLoading: observable,
33+
isLoadingNoteContent: observable,
3234
});
3335
this.loadFromStorage();
3436
}
@@ -426,13 +428,17 @@ export class NotesStore {
426428
async loadNoteContent(note: Note): Promise<void> {
427429
if (note.content) return; // Already loaded
428430

431+
this.isLoadingNoteContent = true;
432+
429433
try {
430434
const dbNote = await db.getNote(note.id);
431435
if (dbNote) {
432436
note.content = dbNote.content;
433437
}
434438
} catch (error) {
435439
console.error('Error loading note content:', error);
440+
} finally {
441+
this.isLoadingNoteContent = false;
436442
}
437443
}
438444

0 commit comments

Comments
 (0)