diff --git a/components/ModalContent/EditCollectionSharingModal.tsx b/components/ModalContent/EditCollectionSharingModal.tsx index 9a73d5b..d4d587b 100644 --- a/components/ModalContent/EditCollectionSharingModal.tsx +++ b/components/ModalContent/EditCollectionSharingModal.tsx @@ -125,6 +125,32 @@ export default function EditCollectionSharingModal({ )} + {permissions === true && collection.isPublic && ( +
Show tags in public collection
+ + + ++ This will let Anyone view this collections tags and search + this collections links by them. +
+Sharable Link (Click to copy)
diff --git a/lib/api/controllers/collections/collectionId/updateCollectionById.ts b/lib/api/controllers/collections/collectionId/updateCollectionById.ts index 4bb4d2f..0985c7b 100644 --- a/lib/api/controllers/collections/collectionId/updateCollectionById.ts +++ b/lib/api/controllers/collections/collectionId/updateCollectionById.ts @@ -62,6 +62,7 @@ export default async function updateCollection( description: data.description, color: data.color, isPublic: data.isPublic, + tagsArePublic: data.tagsArePublic, parent: data.parentId && data.parentId !== ("root" as any) ? { diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index d918086..7601856 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -3,6 +3,7 @@ import getPublicCollectionData from "@/lib/client/getPublicCollectionData"; import { CollectionIncludingMembersAndLinkCount, Sort, + TagIncludingLinkCount, ViewMode, } from "@/types/global"; import { useRouter } from "next/router"; @@ -24,6 +25,7 @@ import EditCollectionSharingModal from "@/components/ModalContent/EditCollection import ViewDropdown from "@/components/ViewDropdown"; import CardView from "@/components/LinkViews/Layouts/CardView"; import ListView from "@/components/LinkViews/Layouts/ListView"; +import useTagStore from "@/store/tags"; // import GridView from "@/components/LinkViews/Layouts/GridView"; const cardVariants: Variants = { @@ -56,6 +58,24 @@ export default function PublicCollections() { archiveAsPDF: undefined as unknown as boolean, }); + const { tags } = useTagStore(); + const handleTagSelection = (tag: TagIncludingLinkCount | undefined) => { + if (tag) { + Object.keys(searchFilter).forEach((v) => searchFilter[(v as keyof {name: boolean, url: boolean, description: boolean, tags: boolean, textContent: boolean})] = false) + searchFilter.tags = true; + return router.push( + "/public/collections/" + + router.query.id + + "?q=" + + encodeURIComponent(tag.name || "") + ); + } else { + return router.push( + "/public/collections/" + + router.query.id) + } + } + const [searchFilter, setSearchFilter] = useState({ name: true, url: true, @@ -221,7 +241,49 @@ export default function PublicCollections() {Browse by topic
+