From 7c35fe409fa638b7361dd541ec9b4e6c6c36ec9e Mon Sep 17 00:00:00 2001 From: Yee Jia Wei Date: Sat, 16 Dec 2023 12:08:28 +0800 Subject: [PATCH] Update LinkCard.tsx --- components/LinkCard.tsx | 137 +++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 71 deletions(-) diff --git a/components/LinkCard.tsx b/components/LinkCard.tsx index 8591f228..1a9c80e9 100644 --- a/components/LinkCard.tsx +++ b/components/LinkCard.tsx @@ -1,17 +1,12 @@ import { - CollectionIncludingMembersAndLinkCount, - LinkIncludingShortenedCollectionAndTags, + CollectionIncludingMembersAndLinkCount, + LinkIncludingShortenedCollectionAndTags, } from "@/types/global"; -import {faLink} from "@fortawesome/free-solid-svg-icons"; -import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {useEffect, useState} from "react"; -import Image from "next/image"; +import { faLink } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { useEffect, useState } from "react"; import useLinkStore from "@/store/links"; import useCollectionStore from "@/store/collections"; -import { - faFileImage, - faFilePdf, -} from "@fortawesome/free-regular-svg-icons"; import isValidUrl from "@/lib/shared/isValidUrl"; import unescapeString from "@/lib/client/unescapeString"; import LinkActions from "@/components/LinkViews/LinkComponents/LinkActions"; @@ -20,76 +15,76 @@ import LinkCollection from "@/components/LinkViews/LinkComponents/LinkCollection import LinkIcon from "@/components/LinkViews/LinkComponents/LinkIcon"; type Props = { - link: LinkIncludingShortenedCollectionAndTags; - count: number; - className?: string; + link: LinkIncludingShortenedCollectionAndTags; + count: number; + className?: string; }; -export default function LinkCard({link, count, className}: Props) { - const {links} = useLinkStore(); +export default function LinkCard({ link, count, className }: Props) { + const { links } = useLinkStore(); - const {collections} = useCollectionStore(); + const { collections } = useCollectionStore(); - const [collection, setCollection] = - useState( - collections.find( - (e) => e.id === link.collection.id - ) as CollectionIncludingMembersAndLinkCount - ); + const [collection, setCollection] = + useState( + collections.find( + (e) => e.id === link.collection.id, + ) as CollectionIncludingMembersAndLinkCount, + ); - useEffect(() => { - setCollection( - collections.find( - (e) => e.id === link.collection.id - ) as CollectionIncludingMembersAndLinkCount - ); - }, [collections, links]); + useEffect(() => { + setCollection( + collections.find( + (e) => e.id === link.collection.id, + ) as CollectionIncludingMembersAndLinkCount, + ); + }, [collections, links]); - let shortendURL; + let shortendURL; - try { - shortendURL = new URL(link.url || "").host.toLowerCase(); - } catch (error) { - console.log(error); - } + try { + shortendURL = new URL(link.url || "").host.toLowerCase(); + } catch (error) { + console.log(error); + } - const url = - isValidUrl(link.url || "") && link.url ? new URL(link.url) : undefined; + const url = + isValidUrl(link.url || "") && link.url ? new URL(link.url) : undefined; - return ( -
-
link.url && window.open(link.url || "", "_blank")} - className="flex flex-col justify-between cursor-pointer h-full w-full gap-1 p-3" - > -
- -
+ return ( +
+
link.url && window.open(link.url || "", "_blank")} + className="flex flex-col justify-between cursor-pointer h-full w-full gap-1 p-3" + > +
+ +
-
-

{count + 1}

-

- {unescapeString(link.name || link.description) || link.url} -

-
+
+

{count + 1}

+

+ {unescapeString(link.name || link.description) || link.url} +

+
- {link.url ? ( -
- -

{shortendURL}

-
- ) : ( -
{link.type}
- )} + {link.url ? ( +
+ +

{shortendURL}

+
+ ) : ( +
{link.type}
+ )} - + - - {/* {link.tags[0] ? ( + + {/* {link.tags[0] ? (
{link.tags.map((e, i) => ( @@ -110,9 +105,9 @@ export default function LinkCard({link, count, className}: Props) { ) : (

No Tags

)} */} -
+
- -
- ); + +
+ ); }