import { type Component, createSignal, createMemo, For, Show } from "solid-js"; import { store } from "@/store"; import { pb } from "@/lib/pocketbase"; import { Plus, Lock, Search } from "lucide-solid"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import { NOTES_COLLECTION } from "@/lib/constants"; export const NotesSidebar: Component<{ selectedNoteId: string | null; setSelectedNoteId: (id: string | null) => void; }> = (props) => { const [searchQuery, setSearchQuery] = createSignal(""); const currentUserId = pb.authStore.model?.id; const filteredNotes = createMemo(() => { let n = store.notes.filter(note => !note.deletedAt); if (searchQuery()) { const q = searchQuery().toLowerCase(); n = n.filter(note => note.title.toLowerCase().includes(q) || note.tags.some(t => t.toLowerCase().includes(q))); } return n; }); const handleCreateNote = async () => { if (!currentUserId) return; try { const result = await pb.collection(NOTES_COLLECTION).create({ title: "New Note", content: "", tags: [], isPrivate: false, user: currentUserId, }); props.setSelectedNoteId(result.id); } catch (e) { console.error("Failed to create note", e); } }; return (