import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faEllipsis } from "@fortawesome/free-solid-svg-icons"; import Link from "next/link"; import { CollectionIncludingMembers } from "@/types/global"; import useLinkStore from "@/store/links"; import Dropdown from "./Dropdown"; import { useState } from "react"; import Modal from "@/components/Modal"; import CollectionInfo from "@/components/Modal/Collection/CollectionInfo"; import DeleteCollection from "@/components/Modal/Collection/DeleteCollection"; import ProfilePhoto from "./ProfilePhoto"; import TeamManagement from "./Modal/Collection/TeamManagement"; export default function ({ collection, }: { collection: CollectionIncludingMembers; }) { const { links } = useLinkStore(); const formattedDate = new Date(collection.createdAt as string).toLocaleString( "en-US", { year: "numeric", month: "short", day: "numeric", } ); const [expandDropdown, setExpandDropdown] = useState(false); const [editCollectionModal, setEditCollectionModal] = useState(false); const [collectionMembersModal, setCollectionMembersModal] = useState(false); const [deleteCollectionModal, setDeleteCollectionModal] = useState(false); const toggleEditCollectionModal = () => { setEditCollectionModal(!editCollectionModal); }; const toggleCollectionMembersModal = () => { setCollectionMembersModal(!collectionMembersModal); }; const toggleDeleteCollectionModal = () => { setDeleteCollectionModal(!deleteCollectionModal); }; return (
setExpandDropdown(!expandDropdown)} id={"expand-dropdown" + collection.id} className="inline-flex absolute top-5 right-5 rounded-md cursor-pointer hover:bg-white hover:border-sky-500 border-sky-100 border duration-100 p-1" >

{collection.name}

{collection.members .sort((a, b) => (a.userId as number) - (b.userId as number)) .map((e, i) => { return ( ); }) .slice(0, 4)} {collection.members.length - 4 > 0 ? (
+{collection.members.length - 4}
) : null}

{links.filter((e) => e.collectionId === collection.id).length}{" "} Links

{formattedDate}

{expandDropdown ? ( { toggleEditCollectionModal(); setExpandDropdown(false); }, }, { name: "Share/Collaborate", onClick: () => { toggleCollectionMembersModal(); setExpandDropdown(false); }, }, { name: "Delete Collection", onClick: () => { toggleDeleteCollectionModal(); setExpandDropdown(false); }, }, ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; if (target.id !== "expand-dropdown" + collection.id) setExpandDropdown(false); }} className="absolute top-[3.2rem] right-5 z-10 w-36" /> ) : null} {editCollectionModal ? ( ) : null} {collectionMembersModal ? ( ) : null} {deleteCollectionModal ? ( ) : null}
); }