aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/app/dashboard/bookmarks/components/LinkCard.tsx
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-09 16:47:17 +0000
committerMohamedBassem <me@mbassem.com>2024-02-09 16:51:24 +0000
commit7400914396eea0c9a1fb7bc59e022babc2186f42 (patch)
tree36e4a3d05b43d15254d75fddebc0594747b70a91 /packages/web/app/dashboard/bookmarks/components/LinkCard.tsx
parent5c0fd0143e5ded1d8e957ec5e59e21d7c629d036 (diff)
downloadkarakeep-7400914396eea0c9a1fb7bc59e022babc2186f42.tar.zst
[feature] Add the ability to favourite and archive bookmarks
Diffstat (limited to 'packages/web/app/dashboard/bookmarks/components/LinkCard.tsx')
-rw-r--r--packages/web/app/dashboard/bookmarks/components/LinkCard.tsx55
1 files changed, 3 insertions, 52 deletions
diff --git a/packages/web/app/dashboard/bookmarks/components/LinkCard.tsx b/packages/web/app/dashboard/bookmarks/components/LinkCard.tsx
index aeef6bae..039cb156 100644
--- a/packages/web/app/dashboard/bookmarks/components/LinkCard.tsx
+++ b/packages/web/app/dashboard/bookmarks/components/LinkCard.tsx
@@ -1,63 +1,14 @@
-"use client";
-
import { Badge } from "@/components/ui/badge";
-import { Button } from "@/components/ui/button";
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu";
import {
ImageCard,
ImageCardBody,
ImageCardFooter,
ImageCardTitle,
} from "@/components/ui/imageCard";
-import { useToast } from "@/components/ui/use-toast";
-import APIClient from "@/lib/api";
import { ZBookmark } from "@/lib/types/api/bookmarks";
-import { MoreHorizontal, Trash2 } from "lucide-react";
import Link from "next/link";
-import { useRouter } from "next/navigation";
-
-export function LinkOptions({ linkId }: { linkId: string }) {
- const { toast } = useToast();
- const router = useRouter();
-
- const unbookmarkLink = async () => {
- const [_, error] = await APIClient.deleteBookmark(linkId);
+import BookmarkOptions from "./BookmarkOptions";
- if (error) {
- toast({
- variant: "destructive",
- title: "Something went wrong",
- description: "There was a problem with your request.",
- });
- } else {
- toast({
- description: "The link has been deleted!",
- });
- }
-
- router.refresh();
- };
- return (
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <Button variant="ghost">
- <MoreHorizontal />
- </Button>
- </DropdownMenuTrigger>
- <DropdownMenuContent className="w-fit">
- <DropdownMenuItem className="text-destructive" onClick={unbookmarkLink}>
- <Trash2 className="mr-2 size-4" />
- <span>Delete</span>
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- );
-}
export default function LinkCard({ bookmark }: { bookmark: ZBookmark }) {
const link = bookmark.content;
@@ -71,7 +22,7 @@ export default function LinkCard({ bookmark }: { bookmark: ZBookmark }) {
image={link?.imageUrl ?? undefined}
>
<ImageCardTitle>
- <Link className="line-clamp-3" href={link.url}>
+ <Link className="line-clamp-2" href={link.url}>
{link?.title ?? parsedUrl.host}
</Link>
</ImageCardTitle>
@@ -93,7 +44,7 @@ export default function LinkCard({ bookmark }: { bookmark: ZBookmark }) {
{parsedUrl.host}
</Link>
</div>
- <LinkOptions linkId={bookmark.id} />
+ <BookmarkOptions bookmark={bookmark} />
</div>
</ImageCardFooter>
</ImageCard>