From 59815f47d863b1c8798064ed04efb1470ed5eaf4 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Wed, 15 Nov 2023 13:12:06 -0500 Subject: [PATCH 1/6] refactored public page endpoints --- components/PublicPage/LinkCard.tsx | 3 +- components/Sidebar.tsx | 6 ++ hooks/useLinks.tsx | 16 +-- .../public/collections/getPublicCollection.ts | 32 ++++++ lib/api/controllers/public/getCollection.ts | 45 --------- .../links/getPublicLinksUnderCollection.ts | 88 +++++++++++++++++ ...{getPublicUserById.ts => getPublicUser.ts} | 2 +- lib/api/controllers/tags/getTags.ts | 5 + lib/client/getPublicCollectionData.ts | 30 ++---- .../{collections.ts => collections/[id].ts} | 6 +- pages/api/v1/public/collections/links/[id].ts | 0 .../api/v1/public/collections/links/index.ts | 41 ++++++++ pages/api/v1/public/users/[id].ts | 4 +- pages/public/collections/[id].tsx | 97 +++++++++++-------- pages/{search/index.tsx => search.tsx} | 0 pages/tags/[id].tsx | 5 +- store/tags.ts | 6 +- types/global.ts | 4 + 18 files changed, 262 insertions(+), 128 deletions(-) create mode 100644 lib/api/controllers/public/collections/getPublicCollection.ts delete mode 100644 lib/api/controllers/public/getCollection.ts create mode 100644 lib/api/controllers/public/links/getPublicLinksUnderCollection.ts rename lib/api/controllers/public/users/{getPublicUserById.ts => getPublicUser.ts} (96%) rename pages/api/v1/public/{collections.ts => collections/[id].ts} (66%) create mode 100644 pages/api/v1/public/collections/links/[id].ts create mode 100644 pages/api/v1/public/collections/links/index.ts rename pages/{search/index.tsx => search.tsx} (100%) diff --git a/components/PublicPage/LinkCard.tsx b/components/PublicPage/LinkCard.tsx index 3be1972..21a24d2 100644 --- a/components/PublicPage/LinkCard.tsx +++ b/components/PublicPage/LinkCard.tsx @@ -4,9 +4,10 @@ import Image from "next/image"; import { Link as LinkType, Tag } from "@prisma/client"; import isValidUrl from "@/lib/client/isValidUrl"; import unescapeString from "@/lib/client/unescapeString"; +import { TagIncludingLinkCount } from "@/types/global"; interface LinksIncludingTags extends LinkType { - tags: Tag[]; + tags: TagIncludingLinkCount[]; } type Props = { diff --git a/components/Sidebar.tsx b/components/Sidebar.tsx index 366c28c..78a31a2 100644 --- a/components/Sidebar.tsx +++ b/components/Sidebar.tsx @@ -176,6 +176,9 @@ export default function Sidebar({ className }: { className?: string }) { className="w-4 h-4 drop-shadow text-gray-500 dark:text-gray-300" /> ) : undefined} +
+ {e._count?.links} +
); @@ -235,6 +238,9 @@ export default function Sidebar({ className }: { className?: string }) {

{e.name}

+
+ {e._count?.links} +
); diff --git a/hooks/useLinks.tsx b/hooks/useLinks.tsx index 60f43db..77e4dce 100644 --- a/hooks/useLinks.tsx +++ b/hooks/useLinks.tsx @@ -50,13 +50,17 @@ export default function useLinks( .join("&"); }; - const queryString = buildQueryString(params); + let queryString = buildQueryString(params); - const response = await fetch( - `/api/v1/${ - router.asPath === "/dashboard" ? "dashboard" : "links" - }?${queryString}` - ); + let basePath; + + if (router.pathname === "/dashboard") basePath = "/api/v1/dashboard"; + else if (router.pathname.startsWith("/public/collections/[id]")) { + queryString = queryString + "&collectionId=" + router.query.id; + basePath = "/api/v1/public/collections/links"; + } else basePath = "/api/v1/links"; + + const response = await fetch(`${basePath}?${queryString}`); const data = await response.json(); diff --git a/lib/api/controllers/public/collections/getPublicCollection.ts b/lib/api/controllers/public/collections/getPublicCollection.ts new file mode 100644 index 0000000..6c5de3a --- /dev/null +++ b/lib/api/controllers/public/collections/getPublicCollection.ts @@ -0,0 +1,32 @@ +import { prisma } from "@/lib/api/db"; + +export default async function getPublicCollection(id: number) { + const collection = await prisma.collection.findFirst({ + where: { + id, + isPublic: true, + }, + include: { + members: { + include: { + user: { + select: { + username: true, + name: true, + image: true, + }, + }, + }, + }, + _count: { + select: { links: true }, + }, + }, + }); + + if (collection) { + return { response: collection, status: 200 }; + } else { + return { response: "Collection not found.", status: 400 }; + } +} diff --git a/lib/api/controllers/public/getCollection.ts b/lib/api/controllers/public/getCollection.ts deleted file mode 100644 index a9a2753..0000000 --- a/lib/api/controllers/public/getCollection.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { prisma } from "@/lib/api/db"; -import { PublicLinkRequestQuery } from "@/types/global"; - -export default async function getCollection(body: string) { - const query: PublicLinkRequestQuery = JSON.parse(decodeURIComponent(body)); - console.log(query); - - let data; - - const collection = await prisma.collection.findFirst({ - where: { - id: query.collectionId, - isPublic: true, - }, - }); - - if (collection) { - const links = await prisma.link.findMany({ - take: Number(process.env.PAGINATION_TAKE_COUNT) || 20, - skip: query.cursor ? 1 : undefined, - cursor: query.cursor - ? { - id: query.cursor, - } - : undefined, - where: { - collection: { - id: query.collectionId, - }, - }, - include: { - tags: true, - }, - orderBy: { - createdAt: "desc", - }, - }); - - data = { ...collection, links: [...links] }; - - return { response: data, status: 200 }; - } else { - return { response: "Collection not found...", status: 400 }; - } -} diff --git a/lib/api/controllers/public/links/getPublicLinksUnderCollection.ts b/lib/api/controllers/public/links/getPublicLinksUnderCollection.ts new file mode 100644 index 0000000..f4113b6 --- /dev/null +++ b/lib/api/controllers/public/links/getPublicLinksUnderCollection.ts @@ -0,0 +1,88 @@ +import { prisma } from "@/lib/api/db"; +import { LinkRequestQuery, Sort } from "@/types/global"; + +export default async function getLink( + query: Omit +) { + const POSTGRES_IS_ENABLED = process.env.DATABASE_URL.startsWith("postgresql"); + + let order: any; + if (query.sort === Sort.DateNewestFirst) order = { createdAt: "desc" }; + else if (query.sort === Sort.DateOldestFirst) order = { createdAt: "asc" }; + else if (query.sort === Sort.NameAZ) order = { name: "asc" }; + else if (query.sort === Sort.NameZA) order = { name: "desc" }; + else if (query.sort === Sort.DescriptionAZ) order = { description: "asc" }; + else if (query.sort === Sort.DescriptionZA) order = { description: "desc" }; + + const searchConditions = []; + + if (query.searchQueryString) { + if (query.searchByName) { + searchConditions.push({ + name: { + contains: query.searchQueryString, + mode: POSTGRES_IS_ENABLED ? "insensitive" : undefined, + }, + }); + } + + if (query.searchByUrl) { + searchConditions.push({ + url: { + contains: query.searchQueryString, + mode: POSTGRES_IS_ENABLED ? "insensitive" : undefined, + }, + }); + } + + if (query.searchByDescription) { + searchConditions.push({ + description: { + contains: query.searchQueryString, + mode: POSTGRES_IS_ENABLED ? "insensitive" : undefined, + }, + }); + } + + if (query.searchByTextContent) { + searchConditions.push({ + textContent: { + contains: query.searchQueryString, + mode: POSTGRES_IS_ENABLED ? "insensitive" : undefined, + }, + }); + } + + if (query.searchByTags) { + searchConditions.push({ + tags: { + some: { + name: { + contains: query.searchQueryString, + mode: POSTGRES_IS_ENABLED ? "insensitive" : undefined, + }, + }, + }, + }); + } + } + + const links = await prisma.link.findMany({ + take: Number(process.env.PAGINATION_TAKE_COUNT) || 20, + skip: query.cursor ? 1 : undefined, + cursor: query.cursor ? { id: query.cursor } : undefined, + where: { + collection: { + id: query.collectionId, + isPublic: true, + }, + [query.searchQueryString ? "OR" : "AND"]: [...searchConditions], + }, + include: { + tags: true, + }, + orderBy: order || { createdAt: "desc" }, + }); + + return { response: links, status: 200 }; +} diff --git a/lib/api/controllers/public/users/getPublicUserById.ts b/lib/api/controllers/public/users/getPublicUser.ts similarity index 96% rename from lib/api/controllers/public/users/getPublicUserById.ts rename to lib/api/controllers/public/users/getPublicUser.ts index 8f7ea48..fff10a5 100644 --- a/lib/api/controllers/public/users/getPublicUserById.ts +++ b/lib/api/controllers/public/users/getPublicUser.ts @@ -1,6 +1,6 @@ import { prisma } from "@/lib/api/db"; -export default async function getPublicUserById( +export default async function getPublicUser( targetId: number | string, isId: boolean, requestingId?: number diff --git a/lib/api/controllers/tags/getTags.ts b/lib/api/controllers/tags/getTags.ts index e1b007f..85a8d17 100644 --- a/lib/api/controllers/tags/getTags.ts +++ b/lib/api/controllers/tags/getTags.ts @@ -30,6 +30,11 @@ export default async function getTags(userId: number) { }, ], }, + include: { + _count: { + select: { links: true }, + }, + }, // orderBy: { // links: { // _count: "desc", diff --git a/lib/client/getPublicCollectionData.ts b/lib/client/getPublicCollectionData.ts index b86c173..d7452c4 100644 --- a/lib/client/getPublicCollectionData.ts +++ b/lib/client/getPublicCollectionData.ts @@ -1,33 +1,19 @@ -import { - PublicCollectionIncludingLinks, - PublicLinkRequestQuery, -} from "@/types/global"; +import { CollectionIncludingMembersAndLinkCount } from "@/types/global"; import { Dispatch, SetStateAction } from "react"; const getPublicCollectionData = async ( collectionId: number, - prevData: PublicCollectionIncludingLinks, - setData: Dispatch> + setData: Dispatch< + SetStateAction + > ) => { - const requestBody: PublicLinkRequestQuery = { - cursor: prevData?.links?.at(-1)?.id, - collectionId, - }; - - const encodedData = encodeURIComponent(JSON.stringify(requestBody)); - - const res = await fetch( - "/api/v1/public/collections?body=" + encodeURIComponent(encodedData) - ); + const res = await fetch("/api/v1/public/collections/" + collectionId); const data = await res.json(); - prevData - ? setData({ - ...data.response, - links: [...prevData.links, ...data.response.links], - }) - : setData(data.response); + console.log(data); + + setData(data.response); return data; }; diff --git a/pages/api/v1/public/collections.ts b/pages/api/v1/public/collections/[id].ts similarity index 66% rename from pages/api/v1/public/collections.ts rename to pages/api/v1/public/collections/[id].ts index 5f6b808..c9b2fde 100644 --- a/pages/api/v1/public/collections.ts +++ b/pages/api/v1/public/collections/[id].ts @@ -1,18 +1,18 @@ -import getCollection from "@/lib/api/controllers/public/getCollection"; +import getPublicCollection from "@/lib/api/controllers/public/collections/getPublicCollection"; import type { NextApiRequest, NextApiResponse } from "next"; export default async function collections( req: NextApiRequest, res: NextApiResponse ) { - if (!req?.query?.body) { + if (!req?.query?.id) { return res .status(401) .json({ response: "Please choose a valid collection." }); } if (req.method === "GET") { - const collection = await getCollection(req?.query?.body as string); + const collection = await getPublicCollection(Number(req?.query?.id)); return res .status(collection.status) .json({ response: collection.response }); diff --git a/pages/api/v1/public/collections/links/[id].ts b/pages/api/v1/public/collections/links/[id].ts new file mode 100644 index 0000000..e69de29 diff --git a/pages/api/v1/public/collections/links/index.ts b/pages/api/v1/public/collections/links/index.ts new file mode 100644 index 0000000..dd55179 --- /dev/null +++ b/pages/api/v1/public/collections/links/index.ts @@ -0,0 +1,41 @@ +import getPublicLinksUnderCollection from "@/lib/api/controllers/public/links/getPublicLinksUnderCollection"; +import { LinkRequestQuery } from "@/types/global"; +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function collections( + req: NextApiRequest, + res: NextApiResponse +) { + if (req.method === "GET") { + // Convert the type of the request query to "LinkRequestQuery" + const convertedData: Omit = { + sort: Number(req.query.sort as string), + cursor: req.query.cursor ? Number(req.query.cursor as string) : undefined, + collectionId: req.query.collectionId + ? Number(req.query.collectionId as string) + : undefined, + pinnedOnly: req.query.pinnedOnly + ? req.query.pinnedOnly === "true" + : undefined, + searchQueryString: req.query.searchQueryString + ? (req.query.searchQueryString as string) + : undefined, + searchByName: req.query.searchByName === "true" ? true : undefined, + searchByUrl: req.query.searchByUrl === "true" ? true : undefined, + searchByDescription: + req.query.searchByDescription === "true" ? true : undefined, + searchByTextContent: + req.query.searchByTextContent === "true" ? true : undefined, + searchByTags: req.query.searchByTags === "true" ? true : undefined, + }; + + if (!convertedData.collectionId) { + return res + .status(400) + .json({ response: "Please choose a valid collection." }); + } + + const links = await getPublicLinksUnderCollection(convertedData); + return res.status(links.status).json({ response: links.response }); + } +} diff --git a/pages/api/v1/public/users/[id].ts b/pages/api/v1/public/users/[id].ts index 5126740..f5b66ed 100644 --- a/pages/api/v1/public/users/[id].ts +++ b/pages/api/v1/public/users/[id].ts @@ -1,5 +1,5 @@ import type { NextApiRequest, NextApiResponse } from "next"; -import getPublicUserById from "@/lib/api/controllers/public/users/getPublicUserById"; +import getPublicUser from "@/lib/api/controllers/public/users/getPublicUser"; import { getToken } from "next-auth/jwt"; export default async function users(req: NextApiRequest, res: NextApiResponse) { @@ -12,7 +12,7 @@ export default async function users(req: NextApiRequest, res: NextApiResponse) { const isId = lookupId.split("").every((e) => Number.isInteger(parseInt(e))); if (req.method === "GET") { - const users = await getPublicUserById(lookupId, isId, requestingId); + const users = await getPublicUser(lookupId, isId, requestingId); return res.status(users.status).json({ response: users.response }); } } diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index 80d03f2..01fab2c 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -1,12 +1,13 @@ "use client"; import LinkCard from "@/components/PublicPage/LinkCard"; -import useDetectPageBottom from "@/hooks/useDetectPageBottom"; import getPublicCollectionData from "@/lib/client/getPublicCollectionData"; -import { PublicCollectionIncludingLinks } from "@/types/global"; +import { CollectionIncludingMembersAndLinkCount, Sort } from "@/types/global"; import { useRouter } from "next/router"; import React, { useEffect, useState } from "react"; import { motion, Variants } from "framer-motion"; import Head from "next/head"; +import useLinks from "@/hooks/useLinks"; +import useLinkStore from "@/store/links"; const cardVariants: Variants = { offscreen: { @@ -23,20 +24,42 @@ const cardVariants: Variants = { }; export default function PublicCollections() { - const router = useRouter(); - const { reachedBottom, setReachedBottom } = useDetectPageBottom(); + const { links } = useLinkStore(); - const [data, setData] = useState(); + const router = useRouter(); + + const [searchFilter, setSearchFilter] = useState({ + name: true, + url: true, + description: true, + textContent: true, + tags: true, + }); + + const [filterDropdown, setFilterDropdown] = useState(false); + const [sortDropdown, setSortDropdown] = useState(false); + const [sortBy, setSortBy] = useState(Sort.DateNewestFirst); + + useLinks({ + sort: sortBy, + searchQueryString: router.query.q + ? decodeURIComponent(router.query.q as string) + : undefined, + searchByName: searchFilter.name, + searchByUrl: searchFilter.url, + searchByDescription: searchFilter.description, + searchByTextContent: searchFilter.textContent, + searchByTags: searchFilter.tags, + }); + + const [collection, setCollection] = + useState(); document.body.style.background = "white"; useEffect(() => { if (router.query.id) { - getPublicCollectionData( - Number(router.query.id), - data as PublicCollectionIncludingLinks, - setData - ); + getPublicCollectionData(Number(router.query.id), setCollection); } // document @@ -49,26 +72,14 @@ export default function PublicCollections() { // ); }, []); - useEffect(() => { - if (reachedBottom && router.query.id) { - getPublicCollectionData( - Number(router.query.id), - data as PublicCollectionIncludingLinks, - setData - ); - } - - setReachedBottom(false); - }, [reachedBottom]); - - return data ? ( + return collection ? (
- {data ? ( + {collection ? ( - {data.name} | Linkwarden + {collection.name} | Linkwarden @@ -76,31 +87,33 @@ export default function PublicCollections() {
-

{data.name}

+

{collection.name}

- {data.description && ( + {collection.description && ( <>
-

{data.description}

+

{collection.description}

)}
- {data?.links?.map((e, i) => { - return ( - - - + {links + ?.filter((e) => e.collectionId === Number(router.query.id)) + .map((e, i) => { + return ( + + + + - - ); - })} + ); + })}
{/*

diff --git a/pages/search/index.tsx b/pages/search.tsx similarity index 100% rename from pages/search/index.tsx rename to pages/search.tsx diff --git a/pages/tags/[id].tsx b/pages/tags/[id].tsx index 466c3bb..5859c2a 100644 --- a/pages/tags/[id].tsx +++ b/pages/tags/[id].tsx @@ -11,10 +11,9 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useRouter } from "next/router"; import { FormEvent, useEffect, useState } from "react"; import MainLayout from "@/layouts/MainLayout"; -import { Tag } from "@prisma/client"; import useTagStore from "@/store/tags"; import SortDropdown from "@/components/SortDropdown"; -import { Sort } from "@/types/global"; +import { Sort, TagIncludingLinkCount } from "@/types/global"; import useLinks from "@/hooks/useLinks"; import Dropdown from "@/components/Dropdown"; import { toast } from "react-hot-toast"; @@ -33,7 +32,7 @@ export default function Index() { const [renameTag, setRenameTag] = useState(false); const [newTagName, setNewTagName] = useState(); - const [activeTag, setActiveTag] = useState(); + const [activeTag, setActiveTag] = useState(); useLinks({ tagId: Number(router.query.id), sort: sortBy }); diff --git a/store/tags.ts b/store/tags.ts index a27b859..6778152 100644 --- a/store/tags.ts +++ b/store/tags.ts @@ -1,5 +1,5 @@ import { create } from "zustand"; -import { Tag } from "@prisma/client"; +import { TagIncludingLinkCount } from "@/types/global"; type ResponseObject = { ok: boolean; @@ -7,9 +7,9 @@ type ResponseObject = { }; type TagStore = { - tags: Tag[]; + tags: TagIncludingLinkCount[]; setTags: () => void; - updateTag: (tag: Tag) => Promise; + updateTag: (tag: TagIncludingLinkCount) => Promise; removeTag: (tagId: number) => Promise; }; diff --git a/types/global.ts b/types/global.ts index 26058cf..2af3766 100644 --- a/types/global.ts +++ b/types/global.ts @@ -37,6 +37,10 @@ export interface CollectionIncludingMembersAndLinkCount members: Member[]; } +export interface TagIncludingLinkCount extends Tag { + _count?: { links: number }; +} + export interface AccountSettings extends User { newPassword?: string; whitelistedUsers: string[]; From 021f7c94810da19c9a777b73e54e6d8eba861381 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Wed, 15 Nov 2023 23:31:13 -0500 Subject: [PATCH 2/6] added view team modal --- .../Modal/Collection/CollectionInfo.tsx | 2 +- components/Modal/Collection/ViewTeam.tsx | 102 ++++++++++++++++ components/Modal/Collection/index.tsx | 75 +++++++----- docker-compose.yml | 2 +- pages/public/collections/[id].tsx | 113 +++++++++++++----- store/modals.ts | 12 +- 6 files changed, 242 insertions(+), 64 deletions(-) create mode 100644 components/Modal/Collection/ViewTeam.tsx diff --git a/components/Modal/Collection/CollectionInfo.tsx b/components/Modal/Collection/CollectionInfo.tsx index f0e71b2..962e9ee 100644 --- a/components/Modal/Collection/CollectionInfo.tsx +++ b/components/Modal/Collection/CollectionInfo.tsx @@ -18,7 +18,7 @@ type Props = { SetStateAction >; collection: CollectionIncludingMembersAndLinkCount; - method: "CREATE" | "UPDATE"; + method: "CREATE" | "UPDATE" | "VIEW_TEAM"; }; export default function CollectionInfo({ diff --git a/components/Modal/Collection/ViewTeam.tsx b/components/Modal/Collection/ViewTeam.tsx new file mode 100644 index 0000000..c22971d --- /dev/null +++ b/components/Modal/Collection/ViewTeam.tsx @@ -0,0 +1,102 @@ +import { useEffect, useState } from "react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faCrown } from "@fortawesome/free-solid-svg-icons"; +import { CollectionIncludingMembersAndLinkCount } from "@/types/global"; +import ProfilePhoto from "@/components/ProfilePhoto"; +import { toast } from "react-hot-toast"; +import getPublicUserData from "@/lib/client/getPublicUserData"; + +type Props = { + collection: CollectionIncludingMembersAndLinkCount; +}; + +export default function ViewTeam({ collection }: Props) { + const currentURL = new URL(document.URL); + + const publicCollectionURL = `${currentURL.origin}/public/collections/${collection.id}`; + + const [collectionOwner, setCollectionOwner] = useState({ + id: null, + name: "", + username: "", + image: "", + }); + + useEffect(() => { + const fetchOwner = async () => { + const owner = await getPublicUserData(collection.ownerId as number); + setCollectionOwner(owner); + }; + + fetchOwner(); + }, []); + + return ( +

+

Team

+ +

Here's all the members that are collaborating in this collection.

+ +
+
+ +
+
+

+ {collectionOwner.name} +

+
+ + Admin +
+
+

+ @{collectionOwner.username} +

+
+
+
+ + {collection?.members[0]?.user && ( + <> +
+ {collection.members + .sort((a, b) => (a.userId as number) - (b.userId as number)) + .map((e, i) => { + return ( +
+
+ +
+

+ {e.user.name} +

+

+ @{e.user.username} +

+
+
+
+ ); + })} +
+ + )} +
+ ); +} diff --git a/components/Modal/Collection/index.tsx b/components/Modal/Collection/index.tsx index 747a742..a535b30 100644 --- a/components/Modal/Collection/index.tsx +++ b/components/Modal/Collection/index.tsx @@ -4,6 +4,7 @@ import { CollectionIncludingMembersAndLinkCount } from "@/types/global"; import TeamManagement from "./TeamManagement"; import { useState } from "react"; import DeleteCollection from "./DeleteCollection"; +import ViewTeam from "./ViewTeam"; type Props = | { @@ -21,6 +22,14 @@ type Props = isOwner: boolean; className?: string; defaultIndex?: number; + } + | { + toggleCollectionModal: Function; + activeCollection: CollectionIncludingMembersAndLinkCount; + method: "VIEW_TEAM"; + isOwner: boolean; + className?: string; + defaultIndex?: number; }; export default function CollectionModal({ @@ -46,14 +55,25 @@ export default function CollectionModal({
{method === "CREATE" && ( -

+

New Collection

)} - - {method === "UPDATE" && ( - <> - {isOwner && ( + {method !== "VIEW_TEAM" && ( + + {method === "UPDATE" && ( + <> + {isOwner && ( + + selected + ? "px-2 py-1 bg-sky-200 dark:bg-sky-800 dark:text-white duration-100 rounded-md outline-none" + : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-neutral-700 hover:dark:text-white rounded-md duration-100 outline-none" + } + > + Collection Info + + )} selected @@ -61,30 +81,21 @@ export default function CollectionModal({ : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-neutral-700 hover:dark:text-white rounded-md duration-100 outline-none" } > - Collection Info + {isOwner ? "Share & Collaborate" : "View Team"} - )} - - selected - ? "px-2 py-1 bg-sky-200 dark:bg-sky-800 dark:text-white duration-100 rounded-md outline-none" - : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-neutral-700 hover:dark:text-white rounded-md duration-100 outline-none" - } - > - {isOwner ? "Share & Collaborate" : "View Team"} - - - selected - ? "px-2 py-1 bg-sky-200 dark:bg-sky-800 dark:text-white duration-100 rounded-md outline-none" - : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-neutral-700 hover:dark:text-white rounded-md duration-100 outline-none" - } - > - {isOwner ? "Delete Collection" : "Leave Collection"} - - - )} - + + selected + ? "px-2 py-1 bg-sky-200 dark:bg-sky-800 dark:text-white duration-100 rounded-md outline-none" + : "px-2 py-1 hover:bg-slate-200 hover:dark:bg-neutral-700 hover:dark:text-white rounded-md duration-100 outline-none" + } + > + {isOwner ? "Delete Collection" : "Leave Collection"} + + + )} + + )} {(isOwner || method === "CREATE") && ( @@ -115,6 +126,14 @@ export default function CollectionModal({ )} + + {method === "VIEW_TEAM" && ( + <> + + + + + )}
diff --git a/docker-compose.yml b/docker-compose.yml index 2a400df..f1ff559 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.5" services: postgres: - image: postgres + image: postgres:16-alpine env_file: .env restart: always volumes: diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index 01fab2c..3317cfc 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -8,6 +8,9 @@ import { motion, Variants } from "framer-motion"; import Head from "next/head"; import useLinks from "@/hooks/useLinks"; import useLinkStore from "@/store/links"; +import ProfilePhoto from "@/components/ProfilePhoto"; +import useModalStore from "@/store/modals"; +import ModalManagement from "@/components/ModalManagement"; const cardVariants: Variants = { offscreen: { @@ -25,6 +28,7 @@ const cardVariants: Variants = { export default function PublicCollections() { const { links } = useLinkStore(); + const { setModal } = useModalStore(); const router = useRouter(); @@ -73,7 +77,13 @@ export default function PublicCollections() { }, []); return collection ? ( -
+
+ {collection ? ( {collection.name} | Linkwarden @@ -84,41 +94,80 @@ export default function PublicCollections() { /> ) : undefined} -
-

{collection.name}

+
+
+

+ {collection.name} +

+
[Logo]
+
- {collection.description && ( - <> -
-

{collection.description}

- - )} -
+
+
+
+ setModal({ + modal: "COLLECTION", + state: true, + method: "VIEW_TEAM", + isOwner: false, + active: collection, + defaultIndex: 0, + }) + } + className="hover:opacity-80 duration-100 flex justify-center sm:justify-end items-center w-fit sm:mr-0 sm:ml-auto cursor-pointer" + > + {collection.members + .sort((a, b) => (a.userId as number) - (b.userId as number)) + .map((e, i) => { + return ( + + ); + }) + .slice(0, 4)} + {collection?.members.length && + collection.members.length - 4 > 0 ? ( +
+ +{collection?.members?.length - 4} +
+ ) : null} +
+
+
-
- {links - ?.filter((e) => e.collectionId === Number(router.query.id)) - .map((e, i) => { - return ( - - - +

{collection.description}

+ +
+ +
+ {links + ?.filter((e) => e.collectionId === Number(router.query.id)) + .map((e, i) => { + return ( + + + + - - ); - })} -
+ ); + })} +
- {/*

- List created with Linkwarden. -

*/} + {/*

+ List created with Linkwarden. +

*/} +
) : ( <> diff --git a/store/modals.ts b/store/modals.ts index 71ecef0..f709d70 100644 --- a/store/modals.ts +++ b/store/modals.ts @@ -39,6 +39,14 @@ type Modal = active?: CollectionIncludingMembersAndLinkCount; defaultIndex?: number; } + | { + modal: "COLLECTION"; + state: boolean; + method: "VIEW_TEAM"; + isOwner?: boolean; + active?: CollectionIncludingMembersAndLinkCount; + defaultIndex?: number; + } | null; type ModalsStore = { @@ -46,11 +54,11 @@ type ModalsStore = { setModal: (modal: Modal) => void; }; -const useLocalSettingsStore = create((set) => ({ +const useModalStore = create((set) => ({ modal: null, setModal: (modal: Modal) => { set({ modal }); }, })); -export default useLocalSettingsStore; +export default useModalStore; From d972ec2dabce594a51171d425a36cc157db3c89e Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Thu, 16 Nov 2023 03:22:16 -0500 Subject: [PATCH 3/6] better public page [WIP] --- components/Modal/Collection/ViewTeam.tsx | 5 - components/Navbar.tsx | 8 +- components/PublicSearchBar.tsx | 57 +++++++ components/{Search.tsx => SearchBar.tsx} | 14 +- components/ToggleDarkMode.tsx | 18 +- lib/client/getPublicCollectionData.ts | 2 - package.json | 2 +- pages/public/collections/[id].tsx | 199 +++++++++++++++++------ public/icon.png | Bin 0 -> 198509 bytes yarn.lock | 10 +- 10 files changed, 235 insertions(+), 80 deletions(-) create mode 100644 components/PublicSearchBar.tsx rename components/{Search.tsx => SearchBar.tsx} (82%) create mode 100644 public/icon.png diff --git a/components/Modal/Collection/ViewTeam.tsx b/components/Modal/Collection/ViewTeam.tsx index c22971d..5356870 100644 --- a/components/Modal/Collection/ViewTeam.tsx +++ b/components/Modal/Collection/ViewTeam.tsx @@ -3,7 +3,6 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCrown } from "@fortawesome/free-solid-svg-icons"; import { CollectionIncludingMembersAndLinkCount } from "@/types/global"; import ProfilePhoto from "@/components/ProfilePhoto"; -import { toast } from "react-hot-toast"; import getPublicUserData from "@/lib/client/getPublicUserData"; type Props = { @@ -11,10 +10,6 @@ type Props = { }; export default function ViewTeam({ collection }: Props) { - const currentURL = new URL(document.URL); - - const publicCollectionURL = `${currentURL.origin}/public/collections/${collection.id}`; - const [collectionOwner, setCollectionOwner] = useState({ id: null, name: "", diff --git a/components/Navbar.tsx b/components/Navbar.tsx index 4a91fb5..57af684 100644 --- a/components/Navbar.tsx +++ b/components/Navbar.tsx @@ -6,12 +6,13 @@ import Dropdown from "@/components/Dropdown"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import Sidebar from "@/components/Sidebar"; import { useRouter } from "next/router"; -import Search from "@/components/Search"; +import SearchBar from "@/components/SearchBar"; import useAccountStore from "@/store/account"; import ProfilePhoto from "@/components/ProfilePhoto"; import useModalStore from "@/store/modals"; import { useTheme } from "next-themes"; import useWindowDimensions from "@/hooks/useWindowDimensions"; +import ToggleDarkMode from "./ToggleDarkMode"; export default function Navbar() { const { setModal } = useModalStore(); @@ -56,7 +57,7 @@ export default function Navbar() { >
- +
{ @@ -76,6 +77,9 @@ export default function Navbar() { New Link
+ + +
{ + console.log(router); + }); + + return ( +
+ + + { + e.target.value.includes("%") && + toast.error("The search query should not contain '%'."); + setSearchQuery(e.target.value.replace("%", "")); + }} + onKeyDown={(e) => + e.key === "Enter" && + router.push( + "/public/collections/" + + router.query.id + + "?q=" + + encodeURIComponent(searchQuery) + ) + } + className="border text-sm border-sky-100 bg-white dark:border-neutral-700 focus:border-sky-300 dark:focus:border-sky-600 rounded-md pl-7 py-1 pr-1 w-44 sm:w-60 dark:hover:border-neutral-600 md:focus:w-80 hover:border-sky-300 duration-100 outline-none dark:bg-neutral-800" + /> +
+ ); +} diff --git a/components/Search.tsx b/components/SearchBar.tsx similarity index 82% rename from components/Search.tsx rename to components/SearchBar.tsx index 842b205..df0b9a4 100644 --- a/components/Search.tsx +++ b/components/SearchBar.tsx @@ -4,24 +4,17 @@ import { useState } from "react"; import { useRouter } from "next/router"; import { toast } from "react-hot-toast"; -export default function Search() { +export default function SearchBar() { const router = useRouter(); - const routeQuery = router.query.query; + const routeQuery = router.query.q; const [searchQuery, setSearchQuery] = useState( routeQuery ? decodeURIComponent(routeQuery as string) : "" ); - const [searchBox, setSearchBox] = useState( - router.pathname.startsWith("/search") || false - ); - return ( -
setSearchBox(true)} - > +
diff --git a/components/ToggleDarkMode.tsx b/components/ToggleDarkMode.tsx index 0ba36b8..cff56c0 100644 --- a/components/ToggleDarkMode.tsx +++ b/components/ToggleDarkMode.tsx @@ -2,7 +2,11 @@ import { useTheme } from "next-themes"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faSun, faMoon } from "@fortawesome/free-solid-svg-icons"; -export default function ToggleDarkMode() { +type Props = { + className?: string; +}; + +export default function ToggleDarkMode({ className }: Props) { const { theme, setTheme } = useTheme(); const handleToggle = () => { @@ -15,15 +19,13 @@ export default function ToggleDarkMode() { return (
-
- -
+
); } diff --git a/lib/client/getPublicCollectionData.ts b/lib/client/getPublicCollectionData.ts index d7452c4..283733b 100644 --- a/lib/client/getPublicCollectionData.ts +++ b/lib/client/getPublicCollectionData.ts @@ -11,8 +11,6 @@ const getPublicCollectionData = async ( const data = await res.json(); - console.log(data); - setData(data.response); return data; diff --git a/package.json b/package.json index a77e211..0078a7b 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "@fortawesome/react-fontawesome": "^0.2.0", "@headlessui/react": "^1.7.15", "@mozilla/readability": "^0.4.4", - "@next/font": "13.4.9", "@prisma/client": "^4.16.2", "@stripe/stripe-js": "^1.54.1", "@types/crypto-js": "^4.1.1", @@ -40,6 +39,7 @@ "eslint-config-next": "13.4.9", "framer-motion": "^10.16.4", "jsdom": "^22.1.0", + "lottie-web": "^5.12.2", "micro": "^10.0.1", "next": "13.4.12", "next-auth": "^4.22.1", diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index 3317cfc..ab31b87 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -11,6 +11,16 @@ import useLinkStore from "@/store/links"; import ProfilePhoto from "@/components/ProfilePhoto"; import useModalStore from "@/store/modals"; import ModalManagement from "@/components/ModalManagement"; +import ToggleDarkMode from "@/components/ToggleDarkMode"; +import { useTheme } from "next-themes"; +import getPublicUserData from "@/lib/client/getPublicUserData"; +import Image from "next/image"; +import Link from "next/link"; +import PublicSearchBar from "@/components/PublicSearchBar"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faFilter, faSort } from "@fortawesome/free-solid-svg-icons"; +import FilterSearchDropdown from "@/components/FilterSearchDropdown"; +import SortDropdown from "@/components/SortDropdown"; const cardVariants: Variants = { offscreen: { @@ -28,10 +38,27 @@ const cardVariants: Variants = { export default function PublicCollections() { const { links } = useLinkStore(); - const { setModal } = useModalStore(); + const { modal, setModal } = useModalStore(); + + useEffect(() => { + modal + ? (document.body.style.overflow = "hidden") + : (document.body.style.overflow = "auto"); + }, [modal]); + + const { theme } = useTheme(); const router = useRouter(); + const [collectionOwner, setCollectionOwner] = useState({ + id: null, + name: "", + username: "", + image: "", + }); + + useEffect(() => {}, []); + const [searchFilter, setSearchFilter] = useState({ name: true, url: true, @@ -59,31 +86,34 @@ export default function PublicCollections() { const [collection, setCollection] = useState(); - document.body.style.background = "white"; - useEffect(() => { if (router.query.id) { getPublicCollectionData(Number(router.query.id), setCollection); } - - // document - // .querySelector("body") - // ?.classList.add( - // "bg-gradient-to-br", - // "from-slate-50", - // "to-sky-50", - // "min-h-screen" - // ); }, []); + useEffect(() => { + const fetchOwner = async () => { + if (collection) { + const owner = await getPublicUserData(collection.ownerId as number); + setCollectionOwner(owner); + } + }; + + fetchOwner(); + }, [collection]); + return collection ? (
+ {collection ? ( {collection.name} | Linkwarden @@ -96,14 +126,26 @@ export default function PublicCollections() { ) : undefined}
-

+

{collection.name}

-
[Logo]
+
+ + + Linkwarden + +
-
+
setModal({ @@ -115,8 +157,16 @@ export default function PublicCollections() { defaultIndex: 0, }) } - className="hover:opacity-80 duration-100 flex justify-center sm:justify-end items-center w-fit sm:mr-0 sm:ml-auto cursor-pointer" + className="hover:opacity-80 duration-100 flex justify-center sm:justify-end items-center w-fit cursor-pointer" > + {collectionOwner.id ? ( + + ) : undefined} {collection.members .sort((a, b) => (a.userId as number) - (b.userId as number)) .map((e, i) => { @@ -124,49 +174,106 @@ export default function PublicCollections() { ); }) - .slice(0, 4)} + .slice(0, 3)} {collection?.members.length && - collection.members.length - 4 > 0 ? ( -
- +{collection?.members?.length - 4} + collection.members.length - 3 > 0 ? ( +
+ +{collection?.members?.length - 3}
) : null} + +

+ By {collectionOwner.name} and {collection.members.length}{" "} + others. +

-

{collection.description}

+

{collection.description}

-
+
-
- {links - ?.filter((e) => e.collectionId === Number(router.query.id)) - .map((e, i) => { - return ( - +
+ + +
+
+
setFilterDropdown(!filterDropdown)} + id="filter-dropdown" + className="inline-flex rounded-md cursor-pointer hover:bg-neutral-500 hover:bg-opacity-40 duration-100 p-1" > - - - - - ); - })} -
+ +
- {/*

- List created with Linkwarden. -

*/} + {filterDropdown ? ( + + ) : null} +
+ +
+
setSortDropdown(!sortDropdown)} + id="sort-dropdown" + className="inline-flex rounded-md cursor-pointer hover:bg-neutral-500 hover:bg-opacity-40 duration-100 p-1" + > + +
+ + {sortDropdown ? ( + setSortDropdown(!sortDropdown)} + /> + ) : null} +
+
+
+ +
+ {links + ?.filter((e) => e.collectionId === Number(router.query.id)) + .map((e, i) => { + return ( + + + + + + ); + })} +
+ + {/*

+ List created with Linkwarden. +

*/} +
) : ( diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6d7e96df4331d8cc08b986d9546e5148b29364 GIT binary patch literal 198509 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 =%2?vJ=XZf2D`}BN`?5g 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

ok7M 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 z%0A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 Date: Thu, 16 Nov 2023 06:51:28 -0500 Subject: [PATCH 4/6] improved public page [WIP] --- .../PublicPage/{LinkCard.tsx => PublicLinkCard.tsx} | 0 components/{ => PublicPage}/PublicSearchBar.tsx | 9 ++------- pages/public/collections/[id].tsx | 12 ++++++------ 3 files changed, 8 insertions(+), 13 deletions(-) rename components/PublicPage/{LinkCard.tsx => PublicLinkCard.tsx} (100%) rename components/{ => PublicPage}/PublicSearchBar.tsx (86%) diff --git a/components/PublicPage/LinkCard.tsx b/components/PublicPage/PublicLinkCard.tsx similarity index 100% rename from components/PublicPage/LinkCard.tsx rename to components/PublicPage/PublicLinkCard.tsx diff --git a/components/PublicSearchBar.tsx b/components/PublicPage/PublicSearchBar.tsx similarity index 86% rename from components/PublicSearchBar.tsx rename to components/PublicPage/PublicSearchBar.tsx index b1b929a..b890e83 100644 --- a/components/PublicSearchBar.tsx +++ b/components/PublicPage/PublicSearchBar.tsx @@ -6,17 +6,12 @@ import { toast } from "react-hot-toast"; type Props = { placeHolder?: string; - className?: string; }; -export default function PublicSearchBar({ placeHolder, className }: Props) { +export default function PublicSearchBar({ placeHolder }: Props) { const router = useRouter(); - const routeQuery = router.query.q; - - const [searchQuery, setSearchQuery] = useState( - routeQuery ? decodeURIComponent(routeQuery as string) : "" - ); + const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { console.log(router); diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index ab31b87..b1e94cc 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -1,5 +1,5 @@ "use client"; -import LinkCard from "@/components/PublicPage/LinkCard"; +import PublicLinkCard from "@/components/PublicPage/PublicLinkCard"; import getPublicCollectionData from "@/lib/client/getPublicCollectionData"; import { CollectionIncludingMembersAndLinkCount, Sort } from "@/types/global"; import { useRouter } from "next/router"; @@ -16,7 +16,7 @@ import { useTheme } from "next-themes"; import getPublicUserData from "@/lib/client/getPublicUserData"; import Image from "next/image"; import Link from "next/link"; -import PublicSearchBar from "@/components/PublicSearchBar"; +import PublicSearchBar from "@/components/PublicPage/PublicSearchBar"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faFilter, faSort } from "@fortawesome/free-solid-svg-icons"; import FilterSearchDropdown from "@/components/FilterSearchDropdown"; @@ -129,7 +129,7 @@ export default function PublicCollections() {

{collection.name}

-
+
{collectionOwner.id ? ( 0 ? ( -
+
+{collection?.members?.length - 3}
) : null} @@ -263,7 +263,7 @@ export default function PublicCollections() { viewport={{ once: true, amount: 0.8 }} > - + ); From b50ec09727a0f64d4b85b4195f24e10ebf20fed5 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Thu, 16 Nov 2023 06:52:19 -0500 Subject: [PATCH 5/6] minor fix --- pages/public/collections/[id].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/public/collections/[id].tsx b/pages/public/collections/[id].tsx index b1e94cc..c92d3c6 100644 --- a/pages/public/collections/[id].tsx +++ b/pages/public/collections/[id].tsx @@ -186,7 +186,7 @@ export default function PublicCollections() {
) : null} -

+

By {collectionOwner.name} and {collection.members.length}{" "} others.

From 614d92f0509202b51eb7313d4acf55e62013c323 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Sun, 19 Nov 2023 08:12:37 -0500 Subject: [PATCH 6/6] finished the public page --- components/DashboardItem.tsx | 2 +- components/FilterSearchDropdown.tsx | 2 +- components/LinkSidebar.tsx | 2 +- components/Modal/Link/PreservedFormats.tsx | 9 +- components/ProfilePhoto.tsx | 1 + components/PublicPage/PublicLinkCard.tsx | 123 ++++--- components/PublicPage/PublicSearchBar.tsx | 33 +- layouts/LinkLayout.tsx | 126 ++++---- .../controllers/links/linkId/getLinkById.ts | 6 +- .../public/links/linkId/getLinkById.ts | 24 ++ lib/api/getPermission.ts | 34 +- pages/api/v1/archives/[...params].ts | 8 +- pages/api/v1/avatar/[id].ts | 46 ++- pages/api/v1/public/collections/[id].ts | 2 +- pages/api/v1/public/collections/links/[id].ts | 0 pages/api/v1/public/links/[id].ts | 13 + pages/links/[id].tsx | 2 +- pages/public/collections/[id].tsx | 2 - pages/public/links/[id].tsx | 301 ++++++++++++++++++ store/links.ts | 10 +- styles/globals.css | 6 +- 21 files changed, 576 insertions(+), 176 deletions(-) create mode 100644 lib/api/controllers/public/links/linkId/getLinkById.ts delete mode 100644 pages/api/v1/public/collections/links/[id].ts create mode 100644 pages/api/v1/public/links/[id].ts create mode 100644 pages/public/links/[id].tsx diff --git a/components/DashboardItem.tsx b/components/DashboardItem.tsx index d891398..3de882e 100644 --- a/components/DashboardItem.tsx +++ b/components/DashboardItem.tsx @@ -20,7 +20,7 @@ export default function dashboardItem({ name, value, icon }: Props) {

{name}

-

+

{value}

diff --git a/components/FilterSearchDropdown.tsx b/components/FilterSearchDropdown.tsx index 0b32bee..90648e0 100644 --- a/components/FilterSearchDropdown.tsx +++ b/components/FilterSearchDropdown.tsx @@ -56,7 +56,7 @@ export default function FilterSearchDropdown({ } /> setSearchFilter({ diff --git a/components/LinkSidebar.tsx b/components/LinkSidebar.tsx index 6ffc2f5..63ddb0a 100644 --- a/components/LinkSidebar.tsx +++ b/components/LinkSidebar.tsx @@ -20,7 +20,7 @@ type Props = { onClick?: Function; }; -export default function SettingsSidebar({ className, onClick }: Props) { +export default function LinkSidebar({ className, onClick }: Props) { const session = useSession(); const userId = session.data?.user.id; diff --git a/components/Modal/Link/PreservedFormats.tsx b/components/Modal/Link/PreservedFormats.tsx index 1a6712b..0cd21c1 100644 --- a/components/Modal/Link/PreservedFormats.tsx +++ b/components/Modal/Link/PreservedFormats.tsx @@ -27,7 +27,14 @@ export default function PreservedFormats() { useEffect(() => { let interval: NodeJS.Timer | undefined; if (link?.screenshotPath === "pending" || link?.pdfPath === "pending") { - interval = setInterval(() => getLink(link.id as number), 5000); + let isPublicRoute = router.pathname.startsWith("/public") + ? true + : undefined; + + interval = setInterval( + () => getLink(link.id as number, isPublicRoute), + 5000 + ); } else { if (interval) { clearInterval(interval); diff --git a/components/ProfilePhoto.tsx b/components/ProfilePhoto.tsx index 8575d6d..993eb40 100644 --- a/components/ProfilePhoto.tsx +++ b/components/ProfilePhoto.tsx @@ -38,6 +38,7 @@ export default function ProfilePhoto({ src, className, priority }: Props) { width={112} priority={priority} draggable={false} + onError={() => setImage("")} className={`h-10 w-10 bg-sky-600 dark:bg-sky-600 shadow rounded-full aspect-square border border-slate-200 dark:border-neutral-700 ${ className || "" }`} diff --git a/components/PublicPage/PublicLinkCard.tsx b/components/PublicPage/PublicLinkCard.tsx index 21a24d2..3d6b01d 100644 --- a/components/PublicPage/PublicLinkCard.tsx +++ b/components/PublicPage/PublicLinkCard.tsx @@ -5,6 +5,7 @@ import { Link as LinkType, Tag } from "@prisma/client"; import isValidUrl from "@/lib/client/isValidUrl"; import unescapeString from "@/lib/client/unescapeString"; import { TagIncludingLinkCount } from "@/types/global"; +import Link from "next/link"; interface LinksIncludingTags extends LinkType { tags: TagIncludingLinkCount[]; @@ -27,75 +28,69 @@ export default function LinkCard({ link, count }: Props) { }); return ( -
-
- {url && ( - <> - { - const target = e.target as HTMLElement; - target.style.display = "none"; - }} - /> - { - const target = e.target as HTMLElement; - target.style.display = "none"; - }} - /> - - )} -
-
-
-

{count + 1}

-

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

-
- -

- {unescapeString(link.description)} +

+
+ ); } diff --git a/components/PublicPage/PublicSearchBar.tsx b/components/PublicPage/PublicSearchBar.tsx index b890e83..525daa3 100644 --- a/components/PublicPage/PublicSearchBar.tsx +++ b/components/PublicPage/PublicSearchBar.tsx @@ -11,11 +11,13 @@ type Props = { export default function PublicSearchBar({ placeHolder }: Props) { const router = useRouter(); - const [searchQuery, setSearchQuery] = useState(""); + const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { - console.log(router); - }); + router.query.q + ? setSearchQuery(decodeURIComponent(router.query.q as string)) + : setSearchQuery(""); + }, [router.query.q]); return (
@@ -36,16 +38,21 @@ export default function PublicSearchBar({ placeHolder }: Props) { toast.error("The search query should not contain '%'."); setSearchQuery(e.target.value.replace("%", "")); }} - onKeyDown={(e) => - e.key === "Enter" && - router.push( - "/public/collections/" + - router.query.id + - "?q=" + - encodeURIComponent(searchQuery) - ) - } - className="border text-sm border-sky-100 bg-white dark:border-neutral-700 focus:border-sky-300 dark:focus:border-sky-600 rounded-md pl-7 py-1 pr-1 w-44 sm:w-60 dark:hover:border-neutral-600 md:focus:w-80 hover:border-sky-300 duration-100 outline-none dark:bg-neutral-800" + onKeyDown={(e) => { + if (e.key === "Enter") { + if (!searchQuery) { + return router.push("/public/collections/" + router.query.id); + } + + return router.push( + "/public/collections/" + + router.query.id + + "?q=" + + encodeURIComponent(searchQuery || "") + ); + } + }} + className="border text-sm border-sky-100 bg-gray-50 dark:border-neutral-700 focus:border-sky-300 dark:focus:border-sky-600 rounded-md pl-8 py-2 pr-2 w-44 sm:w-60 dark:hover:border-neutral-600 md:focus:w-80 hover:border-sky-300 duration-100 outline-none dark:bg-neutral-800" />
); diff --git a/layouts/LinkLayout.tsx b/layouts/LinkLayout.tsx index b2c135e..398acda 100644 --- a/layouts/LinkLayout.tsx +++ b/layouts/LinkLayout.tsx @@ -5,8 +5,7 @@ import useModalStore from "@/store/modals"; import { useRouter } from "next/router"; import ClickAwayHandler from "@/components/ClickAwayHandler"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { faBars, faChevronLeft } from "@fortawesome/free-solid-svg-icons"; -import Link from "next/link"; +import { faChevronLeft } from "@fortawesome/free-solid-svg-icons"; import useWindowDimensions from "@/hooks/useWindowDimensions"; import { faPen, @@ -66,22 +65,22 @@ export default function LinkLayout({ children }: Props) { const [link, setLink] = useState(); useEffect(() => { - if (links) setLink(links.find((e) => e.id === Number(router.query.id))); + if (links[0]) setLink(links.find((e) => e.id === Number(router.query.id))); }, [links]); useEffect(() => { if (link) setLinkCollection(collections.find((e) => e.id === link?.collection.id)); - }, [link]); + }, [link, collections]); return ( <>
-
+ {/*
-
+
*/}
@@ -93,84 +92,95 @@ export default function LinkLayout({ children }: Props) {
*/}
router.push(`/collections/${linkCollection?.id}`)} + onClick={() => { + if (router.pathname.startsWith("/public")) { + router.push( + `/public/collections/${ + linkCollection?.id || link?.collection.id + }` + ); + } else { + router.push(`/collections/${linkCollection?.id}`); + } + }} className="inline-flex gap-1 hover:opacity-60 items-center select-none cursor-pointer p-2 lg:p-0 lg:px-1 lg:my-2 text-gray-500 dark:text-gray-300 rounded-md duration-100" > Back{" "} - to {linkCollection?.name} + to{" "} + + {linkCollection?.name || link?.collection?.name} +
-
-
- {link?.collection.ownerId === userId || - linkCollection?.members.some( - (e) => e.userId === userId && e.canUpdate - ) ? ( -
{ - link - ? setModal({ - modal: "LINK", - state: true, - active: link, - method: "UPDATE", - }) - : undefined; - }} - className={`hover:opacity-60 duration-100 py-2 px-2 cursor-pointer flex items-center gap-4 w-full rounded-md h-8`} - > - -
- ) : undefined} - +
+ {link?.collection?.ownerId === userId || + linkCollection?.members.some( + (e) => e.userId === userId && e.canUpdate + ) ? (
{ link ? setModal({ modal: "LINK", state: true, active: link, - method: "FORMATS", + method: "UPDATE", }) : undefined; }} - title="Preserved Formats" className={`hover:opacity-60 duration-100 py-2 px-2 cursor-pointer flex items-center gap-4 w-full rounded-md h-8`} >
+ ) : undefined} - {link?.collection.ownerId === userId || - linkCollection?.members.some( - (e) => e.userId === userId && e.canDelete - ) ? ( -
{ - if (link?.id) { - removeLink(link.id); - router.back(); - } - }} - title="Delete" - className={`hover:opacity-60 duration-100 py-2 px-2 cursor-pointer flex items-center gap-4 w-full rounded-md h-8`} - > - -
- ) : undefined} +
{ + link + ? setModal({ + modal: "LINK", + state: true, + active: link, + method: "FORMATS", + }) + : undefined; + }} + title="Preserved Formats" + className={`hover:opacity-60 duration-100 py-2 px-2 cursor-pointer flex items-center gap-4 w-full rounded-md h-8`} + > +
+ + {link?.collection?.ownerId === userId || + linkCollection?.members.some( + (e) => e.userId === userId && e.canDelete + ) ? ( +
{ + if (link?.id) { + removeLink(link.id); + router.back(); + } + }} + title="Delete" + className={`hover:opacity-60 duration-100 py-2 px-2 cursor-pointer flex items-center gap-4 w-full rounded-md h-8`} + > + +
+ ) : undefined}
diff --git a/lib/api/controllers/links/linkId/getLinkById.ts b/lib/api/controllers/links/linkId/getLinkById.ts index 83a3ceb..bf872c2 100644 --- a/lib/api/controllers/links/linkId/getLinkById.ts +++ b/lib/api/controllers/links/linkId/getLinkById.ts @@ -1,5 +1,5 @@ import { prisma } from "@/lib/api/db"; -import { Collection, Link, UsersAndCollections } from "@prisma/client"; +import { Collection, UsersAndCollections } from "@prisma/client"; import getPermission from "@/lib/api/getPermission"; export default async function getLinkById(userId: number, linkId: number) { @@ -27,7 +27,7 @@ export default async function getLinkById(userId: number, linkId: number) { status: 401, }; else { - const updatedLink = await prisma.link.findUnique({ + const link = await prisma.link.findUnique({ where: { id: linkId, }, @@ -43,6 +43,6 @@ export default async function getLinkById(userId: number, linkId: number) { }, }); - return { response: updatedLink, status: 200 }; + return { response: link, status: 200 }; } } diff --git a/lib/api/controllers/public/links/linkId/getLinkById.ts b/lib/api/controllers/public/links/linkId/getLinkById.ts new file mode 100644 index 0000000..2e1d87d --- /dev/null +++ b/lib/api/controllers/public/links/linkId/getLinkById.ts @@ -0,0 +1,24 @@ +import { prisma } from "@/lib/api/db"; + +export default async function getLinkById(linkId: number) { + if (!linkId) + return { + response: "Please choose a valid link.", + status: 401, + }; + + const link = await prisma.link.findFirst({ + where: { + id: linkId, + collection: { + isPublic: true, + }, + }, + include: { + tags: true, + collection: true, + }, + }); + + return { response: link, status: 200 }; +} diff --git a/lib/api/getPermission.ts b/lib/api/getPermission.ts index 3d1b2bc..cefd4e1 100644 --- a/lib/api/getPermission.ts +++ b/lib/api/getPermission.ts @@ -1,24 +1,35 @@ import { prisma } from "@/lib/api/db"; type Props = { - userId: number; + userId?: number; collectionId?: number; linkId?: number; + isPublic?: boolean; }; export default async function getPermission({ userId, collectionId, linkId, + isPublic, }: Props) { if (linkId) { const check = await prisma.collection.findFirst({ where: { - links: { - some: { - id: linkId, + [isPublic ? "OR" : "AND"]: [ + { + id: collectionId, + OR: [{ ownerId: userId }, { members: { some: { userId } } }], + links: { + some: { + id: linkId, + }, + }, }, - }, + { + isPublic: isPublic ? true : undefined, + }, + ], }, include: { members: true }, }); @@ -27,10 +38,15 @@ export default async function getPermission({ } else if (collectionId) { const check = await prisma.collection.findFirst({ where: { - AND: { - id: collectionId, - OR: [{ ownerId: userId }, { members: { some: { userId } } }], - }, + [isPublic ? "OR" : "AND"]: [ + { + id: collectionId, + OR: [{ ownerId: userId }, { members: { some: { userId } } }], + }, + { + isPublic: isPublic ? true : undefined, + }, + ], }, include: { members: true }, }); diff --git a/pages/api/v1/archives/[...params].ts b/pages/api/v1/archives/[...params].ts index 1436c04..065ba2f 100644 --- a/pages/api/v1/archives/[...params].ts +++ b/pages/api/v1/archives/[...params].ts @@ -1,20 +1,20 @@ import type { NextApiRequest, NextApiResponse } from "next"; import getPermission from "@/lib/api/getPermission"; import readFile from "@/lib/api/storage/readFile"; -import verifyUser from "@/lib/api/verifyUser"; +import { getToken } from "next-auth/jwt"; export default async function Index(req: NextApiRequest, res: NextApiResponse) { if (!req.query.params) return res.status(401).json({ response: "Invalid parameters." }); - const user = await verifyUser({ req, res }); - if (!user) return; + const token = await getToken({ req }); + const userId = token?.id; const collectionId = req.query.params[0]; const linkId = req.query.params[1]; const collectionIsAccessible = await getPermission({ - userId: user.id, + userId, collectionId: Number(collectionId), }); diff --git a/pages/api/v1/avatar/[id].ts b/pages/api/v1/avatar/[id].ts index f20b9b6..3399cc3 100644 --- a/pages/api/v1/avatar/[id].ts +++ b/pages/api/v1/avatar/[id].ts @@ -2,26 +2,43 @@ import type { NextApiRequest, NextApiResponse } from "next"; import { prisma } from "@/lib/api/db"; import readFile from "@/lib/api/storage/readFile"; import verifyUser from "@/lib/api/verifyUser"; +import { getToken } from "next-auth/jwt"; export default async function Index(req: NextApiRequest, res: NextApiResponse) { const queryId = Number(req.query.id); - const user = await verifyUser({ req, res }); - if (!user) return; - if (!queryId) return res .setHeader("Content-Type", "text/plain") .status(401) .send("Invalid parameters."); - if (user.id !== queryId) { - const targetUser = await prisma.user.findUnique({ + const token = await getToken({ req }); + const userId = token?.id; + + const targetUser = await prisma.user.findUnique({ + where: { + id: queryId, + }, + include: { + whitelistedUsers: true, + }, + }); + + if (targetUser?.isPrivate) { + if (!userId) { + return res + .setHeader("Content-Type", "text/plain") + .status(400) + .send("File inaccessible."); + } + + const user = await prisma.user.findUnique({ where: { - id: queryId, + id: userId, }, include: { - whitelistedUsers: true, + subscriptions: true, }, }); @@ -29,15 +46,18 @@ export default async function Index(req: NextApiRequest, res: NextApiResponse) { (whitelistedUsername) => whitelistedUsername.username ); - if ( - targetUser?.isPrivate && - user.username && - !whitelistedUsernames?.includes(user.username) - ) { + if (!user?.username) { return res .setHeader("Content-Type", "text/plain") .status(400) - .send("File not found."); + .send("File inaccessible."); + } + + if (user.username && !whitelistedUsernames?.includes(user.username)) { + return res + .setHeader("Content-Type", "text/plain") + .status(400) + .send("File inaccessible."); } } diff --git a/pages/api/v1/public/collections/[id].ts b/pages/api/v1/public/collections/[id].ts index c9b2fde..04178f8 100644 --- a/pages/api/v1/public/collections/[id].ts +++ b/pages/api/v1/public/collections/[id].ts @@ -1,7 +1,7 @@ import getPublicCollection from "@/lib/api/controllers/public/collections/getPublicCollection"; import type { NextApiRequest, NextApiResponse } from "next"; -export default async function collections( +export default async function collection( req: NextApiRequest, res: NextApiResponse ) { diff --git a/pages/api/v1/public/collections/links/[id].ts b/pages/api/v1/public/collections/links/[id].ts deleted file mode 100644 index e69de29..0000000 diff --git a/pages/api/v1/public/links/[id].ts b/pages/api/v1/public/links/[id].ts new file mode 100644 index 0000000..b3e854d --- /dev/null +++ b/pages/api/v1/public/links/[id].ts @@ -0,0 +1,13 @@ +import getLinkById from "@/lib/api/controllers/public/links/linkId/getLinkById"; +import type { NextApiRequest, NextApiResponse } from "next"; + +export default async function link(req: NextApiRequest, res: NextApiResponse) { + if (!req?.query?.id) { + return res.status(401).json({ response: "Please choose a valid link." }); + } + + if (req.method === "GET") { + const link = await getLinkById(Number(req?.query?.id)); + return res.status(link.status).json({ response: link.response }); + } +} diff --git a/pages/links/[id].tsx b/pages/links/[id].tsx index b05d0fb..6f18235 100644 --- a/pages/links/[id].tsx +++ b/pages/links/[id].tsx @@ -146,7 +146,7 @@ export default function Index() { >