import { BoldItalicUnderlineToggles, codeBlockPlugin, codeMirrorPlugin, diffSourcePlugin, headingsPlugin, imagePlugin, linkPlugin, listsPlugin, markdownShortcutPlugin, MDXEditor, quotePlugin, SandpackConfig, sandpackPlugin, tablePlugin, thematicBreakPlugin, toolbarPlugin, UndoRedo, DiffSourceToggleWrapper, } from "@mdxeditor/editor"; import { SetStateAction, useEffect, useRef, useState } from "react"; import { folderApi, FolderCreate, FolderTreeNode, FolderTreeResponse, NoteRead, } from "../api/folders"; import { NoteCreate, notesApi } from "../api/notes"; import "../main.css"; import { DndContext, DragEndEvent, PointerSensor, useSensor, useSensors, } from "@dnd-kit/core"; import "@mdxeditor/editor/style.css"; import { DroppableFolder } from "../components/sidebar/DroppableFolder"; import { DraggableNote } from "../components/sidebar/DraggableNote"; // @ts-ignore import CheckIcon from "../assets/fontawesome/svg/circle-check.svg?react"; // @ts-ignore import SpinnerIcon from "../assets/fontawesome/svg/rotate.svg?react"; import { useNoteStore } from "../stores/notesStore"; import { create } from "zustand"; import { Sidebar } from "../components/sidebar/SideBar"; import { Editor } from "../components/editor/Editor"; import { useUIStore } from "../stores/uiStore"; function Home() { // const [folderTree, setFolderTree] = useState(null); // const [selectedNote, setSelectedNote] = useState(null); const [title, setTitle] = useState(""); const [content, setContent] = useState(""); const [newFolder, setNewFolder] = useState(false); const [newFolderText, setNewFolderText] = useState(""); // const [selectedFolder, setSelectedFolder] = useState(null); const [encrypted, setEncrypted] = useState(false); // const [updating, setUpdating] = useState(false); const { setSelectedFolder, selectedFolder, folderTree, loadFolderTree, createNote, createFolder, updateNote, setSelectedNote, selectedNote, } = useNoteStore(); const { updating } = useUIStore(); const newFolderRef = useRef(null); useEffect(() => { loadFolderTree(); }, []); useEffect(() => { if (newFolder && newFolderRef.current) { newFolderRef.current.focus(); } }, [newFolder]); const handleCreate = async () => { if (!title.trim()) return; await createNote({ title, content, folder_id: null }); }; const handleDelete = async (id: number) => { await notesApi.delete(id); loadFolderTree(); clearSelection(); }; const clearSelection = () => { setSelectedNote(null); setTitle(""); setContent(""); }; return (
{/* Sidebar */} {/* Main editor area */}
{/* Top accent bar */}
{/* Action bar */}
{selectedNote ? ( <> {/**/} ) : ( )}
{/* Status indicator */}
{updating ? ( <> Saving... ) : ( <> Saved )}
); } export default Home;