diff --git a/components/CollectionCard.tsx b/components/CollectionCard.tsx index 89651db..60b1288 100644 --- a/components/CollectionCard.tsx +++ b/components/CollectionCard.tsx @@ -4,11 +4,7 @@ // You should have received a copy of the GNU General Public License along with this program. If not, see . import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { - faPenToSquare, - faTrashCan, - faEllipsis, -} from "@fortawesome/free-solid-svg-icons"; +import { faEllipsis } from "@fortawesome/free-solid-svg-icons"; import Link from "next/link"; import { CollectionIncludingMembers } from "@/types/global"; import useLinkStore from "@/store/links"; @@ -50,12 +46,12 @@ export default function ({
setExpandDropdown(!expandDropdown)} - id="edit-dropdown" + 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" >
@@ -100,7 +96,6 @@ export default function ({ items={[ { name: "Edit Collection", - icon: , onClick: () => { toggleEditCollectionModal(); setExpandDropdown(false); @@ -108,7 +103,6 @@ export default function ({ }, { name: "Delete Collection", - icon: , onClick: () => { toggleDeleteCollectionModal(); setExpandDropdown(false); @@ -117,9 +111,10 @@ export default function ({ ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; - if (target.id !== "edit-dropdown") setExpandDropdown(false); + if (target.id !== "expand-dropdown" + collection.id) + setExpandDropdown(false); }} - className="absolute top-[3.2rem] right-5 z-10 w-44" + className="absolute top-[3.2rem] right-5 z-10 w-36" /> ) : null} diff --git a/components/Dashboard/LinkItem.tsx b/components/Dashboard/LinkItem.tsx index 0ebdec4..cbc94d0 100644 --- a/components/Dashboard/LinkItem.tsx +++ b/components/Dashboard/LinkItem.tsx @@ -8,8 +8,6 @@ import { faFolder, faArrowUpRightFromSquare, faEllipsis, - faPenToSquare, - faTrashCan, } from "@fortawesome/free-solid-svg-icons"; import { faFileImage, faFilePdf } from "@fortawesome/free-regular-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -124,14 +122,14 @@ export default function ({ link, count }: Props) {
setExpandDropdown(!expandDropdown)} - id="edit-dropdown" + id="expand-dropdown" className="text-gray-500 inline-flex rounded-md cursor-pointer hover:bg-white hover:outline outline-sky-100 outline-1 duration-100 p-1" >
@@ -168,7 +166,6 @@ export default function ({ link, count }: Props) { items={[ { name: "Edit", - icon: , onClick: () => { setEditModal(true); setExpandDropdown(false); @@ -176,7 +173,6 @@ export default function ({ link, count }: Props) { }, { name: "Delete", - icon: , onClick: () => { removeLink(link); setExpandDropdown(false); @@ -185,7 +181,7 @@ export default function ({ link, count }: Props) { ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; - if (target.id !== "edit-dropdown") setExpandDropdown(false); + if (target.id !== "expand-dropdown") setExpandDropdown(false); }} className="absolute top-8 right-0 w-36" /> diff --git a/components/Dropdown.tsx b/components/Dropdown.tsx index 1eff26f..993388d 100644 --- a/components/Dropdown.tsx +++ b/components/Dropdown.tsx @@ -4,15 +4,20 @@ // You should have received a copy of the GNU General Public License along with this program. If not, see . import Link from "next/link"; -import React, { MouseEventHandler, ReactElement } from "react"; +import React, { MouseEventHandler } from "react"; import ClickAwayHandler from "./ClickAwayHandler"; -type MenuItem = { - name: string; - icon: ReactElement; - onClick?: MouseEventHandler; - href?: string; -}; +type MenuItem = + | { + name: string; + onClick: MouseEventHandler; + href?: string; + } + | { + name: string; + onClick?: MouseEventHandler; + href: string; + }; type Props = { onClickOutside: Function; @@ -20,20 +25,17 @@ type Props = { items: MenuItem[]; }; -export default function ({ onClickOutside, className, items }: Props) { +export default function Dropdown({ onClickOutside, className, items }: Props) { return ( {items.map((e, i) => { const inner = ( -
-
- {React.cloneElement(e.icon, { - className: "text-sky-500 w-5 h-5", - })} -

{e.name}

+
+
+

{e.name}

); diff --git a/components/LinkList.tsx b/components/LinkList.tsx index 733ea9f..2823fcf 100644 --- a/components/LinkList.tsx +++ b/components/LinkList.tsx @@ -8,8 +8,6 @@ import { faFolder, faArrowUpRightFromSquare, faEllipsis, - faPenToSquare, - faTrashCan, } from "@fortawesome/free-solid-svg-icons"; import { faFileImage, faFilePdf } from "@fortawesome/free-regular-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; @@ -124,14 +122,14 @@ export default function ({ link, count }: Props) {
setExpandDropdown(!expandDropdown)} - id="edit-dropdown" + id={"expand-dropdown" + link.id} className="text-gray-500 inline-flex rounded-md cursor-pointer hover:bg-white hover:outline outline-sky-100 outline-1 duration-100 p-1" >
@@ -168,7 +166,6 @@ export default function ({ link, count }: Props) { items={[ { name: "Edit", - icon: , onClick: () => { setEditModal(true); setExpandDropdown(false); @@ -176,7 +173,6 @@ export default function ({ link, count }: Props) { }, { name: "Delete", - icon: , onClick: () => { removeLink(link); setExpandDropdown(false); @@ -185,9 +181,10 @@ export default function ({ link, count }: Props) { ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; - if (target.id !== "edit-dropdown") setExpandDropdown(false); + if (target.id !== "expand-dropdown" + link.id) + setExpandDropdown(false); }} - className="absolute top-8 right-0 w-36" + className="absolute top-7 right-0 w-36" /> ) : null}
diff --git a/components/Navbar.tsx b/components/Navbar.tsx index c1e0723..792d300 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -8,8 +8,6 @@ import { signOut } from "next-auth/react"; import { faPlus, faCircleUser, - faSliders, - faArrowRightFromBracket, faChevronDown, faBars, } from "@fortawesome/free-solid-svg-icons"; @@ -104,7 +102,6 @@ export default function () { items={[ { name: "Settings", - icon: , onClick: () => { toggleSettingsModal(); setProfileDropdown(!profileDropdown); @@ -112,7 +109,6 @@ export default function () { }, { name: "Logout", - icon: , onClick: () => { signOut(); setProfileDropdown(!profileDropdown); diff --git a/pages/collections/[id].tsx b/pages/collections/[id].tsx index 1f6a615..3ccffa4 100644 --- a/pages/collections/[id].tsx +++ b/pages/collections/[id].tsx @@ -13,12 +13,9 @@ import useCollectionStore from "@/store/collections"; import useLinkStore from "@/store/links"; import { CollectionIncludingMembers } from "@/types/global"; import { - faAdd, faEllipsis, faFolder, - faPenToSquare, faSort, - faTrashCan, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useRouter } from "next/router"; @@ -231,12 +228,12 @@ export default function () {
setExpandDropdown(!expandDropdown)} - id="edit-dropdown" + id="expand-dropdown" className="inline-flex rounded-md cursor-pointer hover:bg-white hover:border-sky-500 border-sky-100 border duration-100 p-1" > @@ -246,7 +243,6 @@ export default function () { items={[ { name: "Add Link Here", - icon: , onClick: () => { toggleLinkModal(); setExpandDropdown(false); @@ -254,7 +250,17 @@ export default function () { }, { name: "Edit Collection", - icon: , + onClick: () => { + toggleEditCollectionModal(); + setExpandDropdown(false); + }, + }, + { + name: `${ + activeCollection?.ownerId === data?.user.id + ? "Manage" + : "View" + } Team`, onClick: () => { toggleEditCollectionModal(); setExpandDropdown(false); @@ -262,7 +268,6 @@ export default function () { }, { name: "Delete Collection", - icon: , onClick: () => { toggleDeleteCollectionModal(); setExpandDropdown(false); @@ -271,10 +276,10 @@ export default function () { ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; - if (target.id !== "edit-dropdown") + if (target.id !== "expand-dropdown") setExpandDropdown(false); }} - className="absolute top-8 right-0 z-10 w-44" + className="absolute top-8 right-0 z-10 w-36" /> ) : null} diff --git a/pages/collections/index.tsx b/pages/collections/index.tsx index 29a19f4..38c9508 100644 --- a/pages/collections/index.tsx +++ b/pages/collections/index.tsx @@ -5,7 +5,6 @@ import useCollectionStore from "@/store/collections"; import { - faAdd, faBox, faEllipsis, faPlus, @@ -95,12 +94,12 @@ export default function () {
setExpandDropdown(!expandDropdown)} - id="edit-dropdown" + id="expand-dropdown" className="inline-flex rounded-md cursor-pointer hover:bg-white hover:border-sky-500 border-sky-100 border duration-100 p-1" >
@@ -109,8 +108,7 @@ export default function () { , + name: "New Collection", onClick: () => { toggleCollectionModal(); setExpandDropdown(false); @@ -119,7 +117,8 @@ export default function () { ]} onClickOutside={(e: Event) => { const target = e.target as HTMLInputElement; - if (target.id !== "edit-dropdown") setExpandDropdown(false); + if (target.id !== "expand-dropdown") + setExpandDropdown(false); }} className="absolute top-8 left-0 w-36" />