aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/app/dashboard/bookmarks/components/TextCard.tsx
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-02 11:00:21 +0000
committerMohamedBassem <me@mbassem.com>2024-03-02 11:00:21 +0000
commite5bedae5eaad8ed377e7d9b689815dbd55fdb523 (patch)
tree48469f5f921df0fe9776b573c955382866830986 /packages/web/app/dashboard/bookmarks/components/TextCard.tsx
parent42306591168d047d099ac8592111ecb56772c00c (diff)
downloadkarakeep-e5bedae5eaad8ed377e7d9b689815dbd55fdb523.tar.zst
feature: Show a loading indicator when tags are still being fetched
Diffstat (limited to 'packages/web/app/dashboard/bookmarks/components/TextCard.tsx')
-rw-r--r--packages/web/app/dashboard/bookmarks/components/TextCard.tsx19
1 files changed, 18 insertions, 1 deletions
diff --git a/packages/web/app/dashboard/bookmarks/components/TextCard.tsx b/packages/web/app/dashboard/bookmarks/components/TextCard.tsx
index 5d571356..8170a304 100644
--- a/packages/web/app/dashboard/bookmarks/components/TextCard.tsx
+++ b/packages/web/app/dashboard/bookmarks/components/TextCard.tsx
@@ -11,6 +11,13 @@ import { useState } from "react";
import { BookmarkedTextViewer } from "./BookmarkedTextViewer";
import { Button } from "@/components/ui/button";
+function isStillTagging(bookmark: ZBookmark) {
+ return (
+ bookmark.taggingStatus == "pending" &&
+ Date.now().valueOf() - bookmark.createdAt.valueOf() < 30 * 1000
+ );
+}
+
export default function TextCard({
bookmark: initialData,
className,
@@ -24,6 +31,16 @@ export default function TextCard({
},
{
initialData,
+ refetchInterval: (query) => {
+ const data = query.state.data;
+ if (!data) {
+ return false;
+ }
+ if (isStillTagging(data)) {
+ return 1000;
+ }
+ return false;
+ },
},
);
const [previewModalOpen, setPreviewModalOpen] = useState(false);
@@ -51,7 +68,7 @@ export default function TextCard({
{bookmarkedText.text}
</Markdown>
<div className="mt-4 flex flex-none flex-wrap gap-1 overflow-hidden">
- <TagList bookmark={bookmark} />
+ <TagList bookmark={bookmark} loading={isStillTagging(bookmark)} />
</div>
<div className="flex w-full justify-between">
<div />