cleaner code

This commit is contained in:
daniel31x13
2025-12-14 22:31:01 -05:00
parent 40c3ccca93
commit e2d89a56d6
9 changed files with 31 additions and 12 deletions

View File

@@ -210,7 +210,11 @@ export function Card({ link, editMode, dashboardType }: Props) {
<div className="flex justify-between items-center text-xs text-neutral px-3 pb-1 gap-2">
{show.collection && !isPublicRoute && (
<div className="cursor-pointer truncate">
<LinkCollection link={link} collection={collection} />
<LinkCollection
link={link}
collection={collection}
isPublicRoute={false}
/>
</div>
)}
{show.date && <LinkDate link={link} />}

View File

@@ -156,7 +156,11 @@ export default function LinkCard({
<div className="flex justify-between items-center text-xs text-neutral px-3 pb-1 gap-2">
{show.collection && !isPublicRoute && collection && (
<div className="cursor-pointer truncate">
<LinkCollection link={link} collection={collection} />
<LinkCollection
link={link}
collection={collection}
isPublicRoute={isPublicRoute}
/>
</div>
)}
{show.date && <LinkDate link={link} />}

View File

@@ -11,14 +11,12 @@ import React from "react";
export default function LinkCollection({
link,
collection,
isPublicRoute,
}: {
link: LinkIncludingShortenedCollectionAndTags;
collection: CollectionIncludingMembersAndLinkCount;
isPublicRoute: boolean;
}) {
const router = useRouter();
const isPublicRoute = router.pathname.startsWith("/public") ? true : false;
return !isPublicRoute && collection?.name ? (
<>
<Link

View File

@@ -54,7 +54,7 @@ export default function LinkIcon({
faviconLoaded ? "" : "absolute opacity-0"
)}
draggable="false"
onLoadingComplete={() => setFaviconLoaded(true)}
onLoad={() => setFaviconLoaded(true)}
onError={() => setFaviconLoaded(false)}
/>
{!faviconLoaded && (

View File

@@ -113,7 +113,11 @@ export default function LinkList({
<div className="flex items-center gap-x-3 text-neutral flex-wrap">
{show.link && <LinkTypeBadge link={link} />}
{show.collection && collection && (
<LinkCollection link={link} collection={collection} />
<LinkCollection
link={link}
collection={collection}
isPublicRoute={isPublicRoute}
/>
)}
{show.date && <LinkDate link={link} />}
</div>

View File

@@ -175,7 +175,11 @@ export default function LinkMasonry({
<div className="flex flex-wrap justify-between items-center text-xs text-neutral px-3 pb-1 w-full gap-x-2">
{!isPublicRoute && show.collection && collection && (
<div className="cursor-pointer truncate">
<LinkCollection link={link} collection={collection} />
<LinkCollection
link={link}
collection={collection}
isPublicRoute={isPublicRoute}
/>
</div>
)}
{show.date && <LinkDate link={link} />}

View File

@@ -374,7 +374,12 @@ export default function Links({
const isPublicRoute = router.pathname.startsWith("/public") ? true : false;
useEffect(() => {
if (inView && useData?.fetchNextPage && useData?.hasNextPage) {
if (
inView &&
!useData.isFetching &&
useData?.fetchNextPage &&
useData?.hasNextPage
) {
useData.fetchNextPage();
}
}, [useData, inView]);

View File

@@ -215,7 +215,7 @@ const PreservationNavbar = ({ link, format, className }: Props) => {
<ToggleDarkMode />
<LinkActions
link={link}
collection={collection}
t={t}
linkModal={linkModal}
setLinkModal={(e) => setLinkModal(e)}
ghost

View File

@@ -49,7 +49,7 @@ const useLinks = (params: LinkRequestQuery = {}, auth?: MobileAuth) => {
const links = useMemo(() => {
return data?.pages?.flatMap((page) => page?.links ?? []) ?? [];
}, [data]);
}, [data?.pages.at(-1)?.nextCursor]);
const memoizedData = useMemo(() => ({ ...data, ...rest }), [data, rest]);