import { Check, Plus, Sun, Moon } from "lucide-react" import { Sidebar, SidebarContent, SidebarHeader, SidebarFooter } from "@/components/ui/sidebar" import { Button } from "@/components/ui/button" import { ScrollArea } from "@/components/ui/scroll-area" import { Input } from "@/components/ui/input" import ListItem from "./ListItem" import { useNote } from "../contexts/ActiveNoteContext" import { useNotesStore } from "../contexts/NotesStore" import { useTheme } from "../contexts/ThemeContext" import { ChangeEvent, ReactNode, useState } from "react" function AppSidebar() { const { notes, createNote } = useNotesStore() const { setCurrentNoteId } = useNote() const { theme, toggleTheme } = useTheme() const [ filter, setFilter ] = useState("") const buildNoteListItems = () => { const out: ReactNode[] = [] notes.forEach((note, key, _) => { if (filter && !note.title.toLowerCase().includes(filter.toLowerCase())) return; out.push( setCurrentNoteId(note.id)} /> ) }) return out; } return (
Notes
setFilter(e.target.value)} />
{buildNoteListItems()}
{notes.length} note{notes.length !== 1 && "s"}
Notes synced
) } export default AppSidebar