Handle 400 error code when accesing a non public collection

This commit is contained in:
Isaac Wise 2024-07-22 17:39:38 -05:00
parent 2264abd384
commit 1b9dafbe47
No known key found for this signature in database
GPG Key ID: A02A33A7E2427136
2 changed files with 23 additions and 19 deletions

View File

@ -9,6 +9,8 @@ const getPublicCollectionData = async (
) => { ) => {
const res = await fetch("/api/v1/public/collections/" + collectionId); const res = await fetch("/api/v1/public/collections/" + collectionId);
if (res.status === 400) return { response: "Collection not found.", status: 400 };
const data = await res.json(); const data = await res.json();
setData(data.response); setData(data.response);

View File

@ -68,12 +68,15 @@ export default function PublicCollections() {
searchByTags: searchFilter.tags, searchByTags: searchFilter.tags,
}); });
const [collection, setCollection] = const [collection, setCollection] = useState<CollectionIncludingMembersAndLinkCount>();
useState<CollectionIncludingMembersAndLinkCount>();
useEffect(() => { useEffect(() => {
if (router.query.id) { if (router.query.id) {
getPublicCollectionData(Number(router.query.id), setCollection); getPublicCollectionData(Number(router.query.id), setCollection).then((res) => {
if (res.status === 400) {
router.push("/dashboard");
}
})
} }
}, [collections]); }, [collections]);
@ -108,9 +111,8 @@ export default function PublicCollections() {
<div <div
className="h-96" className="h-96"
style={{ style={{
backgroundImage: `linear-gradient(${collection?.color}30 10%, ${ backgroundImage: `linear-gradient(${collection?.color}30 10%, ${settings.theme === "dark" ? "#262626" : "#f3f4f6"
settings.theme === "dark" ? "#262626" : "#f3f4f6" } 13rem, ${settings.theme === "dark" ? "#171717" : "#ffffff"} 100%)`,
} 13rem, ${settings.theme === "dark" ? "#171717" : "#ffffff"} 100%)`,
}} }}
> >
{collection ? ( {collection ? (
@ -181,20 +183,20 @@ export default function PublicCollections() {
<p className="text-neutral text-sm"> <p className="text-neutral text-sm">
{collection.members.length > 0 && {collection.members.length > 0 &&
collection.members.length === 1 collection.members.length === 1
? t("by_author_and_other", { ? t("by_author_and_other", {
author: collectionOwner.name,
count: collection.members.length,
})
: collection.members.length > 0 &&
collection.members.length !== 1
? t("by_author_and_others", {
author: collectionOwner.name, author: collectionOwner.name,
count: collection.members.length, count: collection.members.length,
}) })
: collection.members.length > 0 &&
collection.members.length !== 1
? t("by_author_and_others", {
author: collectionOwner.name,
count: collection.members.length,
})
: t("by_author", { : t("by_author", {
author: collectionOwner.name, author: collectionOwner.name,
})} })}
</p> </p>
</div> </div>
</div> </div>
@ -218,11 +220,11 @@ export default function PublicCollections() {
placeholder={ placeholder={
collection._count?.links === 1 collection._count?.links === 1
? t("search_count_link", { ? t("search_count_link", {
count: collection._count?.links, count: collection._count?.links,
}) })
: t("search_count_links", { : t("search_count_links", {
count: collection._count?.links, count: collection._count?.links,
}) })
} }
/> />
</LinkListOptions> </LinkListOptions>