diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-01 18:00:58 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-01 18:00:58 +0000 |
| commit | 75d315dda4232ee3b89abf054f0b6ee10105ffe3 (patch) | |
| tree | f0796a136578f3b5aa82b4b3313e54fa3061ff5f /packages/web/app/dashboard/components/AllLists.tsx | |
| parent | 588471d65039e6920751ac2add8874ee932bc2f1 (diff) | |
| download | karakeep-75d315dda4232ee3b89abf054f0b6ee10105ffe3.tar.zst | |
feature: Add support for creating and updating lists
Diffstat (limited to 'packages/web/app/dashboard/components/AllLists.tsx')
| -rw-r--r-- | packages/web/app/dashboard/components/AllLists.tsx | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/web/app/dashboard/components/AllLists.tsx b/packages/web/app/dashboard/components/AllLists.tsx new file mode 100644 index 00000000..6b5ca3b5 --- /dev/null +++ b/packages/web/app/dashboard/components/AllLists.tsx @@ -0,0 +1,41 @@ +"use client"; + +import { api } from "@/lib/trpc"; +import { ScrollArea } from "@/components/ui/scroll-area"; +import SidebarItem from "./SidebarItem"; +import LoadingSpinner from "@/components/ui/spinner"; +import NewListModal, { useNewListModal } from "./NewListModal"; +import { Plus } from "lucide-react"; +import Link from "next/link"; + +export default function AllLists() { + const { data: lists } = api.lists.list.useQuery(); + + const { setOpen } = useNewListModal(); + + return ( + <ul className="max-h-full gap-2 overflow-scroll text-sm font-medium"> + <NewListModal /> + <li className="flex justify-between py-2 font-bold"> + <p>Lists</p> + <Link href="#" onClick={() => setOpen(true)}> + <Plus /> + </Link> + </li> + {lists && lists.lists.length == 0 && <li>No lists</li>} + {lists ? ( + lists.lists.map((l) => ( + <SidebarItem + key={l.id} + logo={<span className="text-lg"> {l.icon}</span>} + name={l.name} + path={`/dashboard/lists/${l.id}`} + className="py-0.5" + /> + )) + ) : ( + <LoadingSpinner /> + )} + </ul> + ); +} |
