diff options
| author | MohamedBassem <me@mbassem.com> | 2024-04-23 13:56:35 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-04-23 13:56:35 +0100 |
| commit | 77b1aba5acc66dfaeb02b08d60d88442336026a6 (patch) | |
| tree | 950f71d7c868869902e742644697e077db734769 /apps/browser-extension/src/components/BookmarkLists.tsx | |
| parent | 0e260954c13cfedb03e75d3f0db8a2e839fd008d (diff) | |
| download | karakeep-77b1aba5acc66dfaeb02b08d60d88442336026a6.tar.zst | |
feature(extension): Allow adding tags and lists to newly hoarded bookmarks
Diffstat (limited to 'apps/browser-extension/src/components/BookmarkLists.tsx')
| -rw-r--r-- | apps/browser-extension/src/components/BookmarkLists.tsx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/browser-extension/src/components/BookmarkLists.tsx b/apps/browser-extension/src/components/BookmarkLists.tsx new file mode 100644 index 00000000..9ccd8951 --- /dev/null +++ b/apps/browser-extension/src/components/BookmarkLists.tsx @@ -0,0 +1,45 @@ +import { X } from "lucide-react"; + +import { + useBookmarkLists, + useRemoveBookmarkFromList, +} from "@hoarder/shared-react/hooks/lists"; + +import { api } from "../utils/trpc"; +import { Button } from "./ui/button"; + +export default function BookmarkLists({ bookmarkId }: { bookmarkId: string }) { + const { data: allLists } = useBookmarkLists(); + + const { mutate: deleteFromList } = useRemoveBookmarkFromList(); + + const { data: lists } = api.lists.getListsOfBookmark.useQuery({ bookmarkId }); + if (!lists || !allLists) { + return null; + } + + return ( + <ul className="flex flex-col gap-1"> + {lists.lists.map((l) => ( + <li + key={l.id} + className="flex items-center justify-between rounded border border-border bg-background p-2 text-sm text-foreground" + > + <span> + {allLists + .getPathById(l.id)! + .map((l) => `${l.icon} ${l.name}`) + .join(" / ")} + </span> + <Button + variant="ghost" + size="sm" + onClick={() => deleteFromList({ bookmarkId, listId: l.id })} + > + <X className="size-4" /> + </Button> + </li> + ))} + </ul> + ); +} |
