Jotzy/frontend/src/utils/notes.ts

29 lines
720 B
TypeScript
Raw Normal View History

2026-01-06 12:09:37 +00:00
import { Folder, FolderTreeNode, FolderTreeResponse } from "@/api/folders";
import { NoteRead } from "@/api/notes";
export const createNoteMap = (
folderTree: FolderTreeResponse,
): Map<number, NoteRead> => {
const flatenedNotes = flattenNotes(folderTree);
const noteMap = new Map();
for (const note of flatenedNotes) {
noteMap.set(note.id, note);
}
return noteMap;
};
export const flattenNotes = (response: FolderTreeResponse): NoteRead[] => {
const allNotes = [...response.orphanedNotes];
const processFolder = (folder: FolderTreeNode) => {
allNotes.push(...folder.notes);
folder.children.forEach(processFolder);
};
response.folders.forEach(processFolder);
return allNotes;
};