aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-05-31 15:23:46 +0000
committerMohamed Bassem <me@mbassem.com>2025-05-31 15:23:46 +0000
commitb218118b84291de4a9c1cd400dc58afab7054b78 (patch)
treeae870adffa7a06147e1618016934aafbed75df70 /packages
parent3e860b7904e4b5fab9a5256426b03a35c9e165ee (diff)
downloadkarakeep-b218118b84291de4a9c1cd400dc58afab7054b78.tar.zst
refactor: Move bookmark utils from shared-react to shared
Diffstat (limited to 'packages')
-rw-r--r--packages/shared-react/hooks/bookmarks.ts3
-rw-r--r--packages/shared-react/tsconfig.json2
-rw-r--r--packages/shared-react/utils/bookmarkUtils.ts81
-rw-r--r--packages/shared/utils/assetUtils.ts (renamed from packages/shared-react/utils/assetUtils.ts)0
-rw-r--r--packages/shared/utils/bookmarkUtils.ts76
5 files changed, 79 insertions, 83 deletions
diff --git a/packages/shared-react/hooks/bookmarks.ts b/packages/shared-react/hooks/bookmarks.ts
index e06c7841..15b678cc 100644
--- a/packages/shared-react/hooks/bookmarks.ts
+++ b/packages/shared-react/hooks/bookmarks.ts
@@ -1,5 +1,6 @@
+import { isBookmarkStillLoading } from "@karakeep/shared/utils/bookmarkUtils";
+
import { api } from "../trpc";
-import { isBookmarkStillLoading } from "../utils/bookmarkUtils";
import { useBookmarkGridContext } from "./bookmark-grid-context";
import { useAddBookmarkToList } from "./lists";
diff --git a/packages/shared-react/tsconfig.json b/packages/shared-react/tsconfig.json
index 3d6919d0..513582c4 100644
--- a/packages/shared-react/tsconfig.json
+++ b/packages/shared-react/tsconfig.json
@@ -9,6 +9,6 @@
},
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
},
- "include": ["**/*.ts", "**/*.tsx"],
+ "include": ["**/*.ts", "**/*.tsx", "../shared/utils/bookmarkUtils.ts", "../shared/utils/assetUtils.ts"],
"exclude": ["node_modules"]
}
diff --git a/packages/shared-react/utils/bookmarkUtils.ts b/packages/shared-react/utils/bookmarkUtils.ts
index 08a6a5e9..e69de29b 100644
--- a/packages/shared-react/utils/bookmarkUtils.ts
+++ b/packages/shared-react/utils/bookmarkUtils.ts
@@ -1,81 +0,0 @@
-import {
- BookmarkTypes,
- ZBookmark,
- ZBookmarkedLink,
-} from "@karakeep/shared/types/bookmarks";
-
-import { getAssetUrl } from "./assetUtils";
-
-const MAX_LOADING_MSEC = 30 * 1000;
-
-export function getBookmarkLinkImageUrl(bookmark: ZBookmarkedLink) {
- if (bookmark.imageAssetId) {
- return { url: getAssetUrl(bookmark.imageAssetId), localAsset: true };
- }
- if (bookmark.screenshotAssetId) {
- return { url: getAssetUrl(bookmark.screenshotAssetId), localAsset: true };
- }
- return bookmark.imageUrl
- ? { url: bookmark.imageUrl, localAsset: false }
- : null;
-}
-
-export function isBookmarkStillCrawling(bookmark: ZBookmark) {
- return (
- bookmark.content.type == BookmarkTypes.LINK &&
- !bookmark.content.crawledAt &&
- Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
- );
-}
-
-export function isBookmarkStillTagging(bookmark: ZBookmark) {
- return (
- bookmark.taggingStatus == "pending" &&
- Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
- );
-}
-
-export function isBookmarkStillSummarizing(bookmark: ZBookmark) {
- return (
- bookmark.summarizationStatus == "pending" &&
- Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
- );
-}
-
-export function isBookmarkStillLoading(bookmark: ZBookmark) {
- return (
- isBookmarkStillTagging(bookmark) ||
- isBookmarkStillCrawling(bookmark) ||
- isBookmarkStillSummarizing(bookmark)
- );
-}
-
-export function getSourceUrl(bookmark: ZBookmark) {
- if (bookmark.content.type === BookmarkTypes.LINK) {
- return bookmark.content.url;
- }
- if (bookmark.content.type === BookmarkTypes.ASSET) {
- return bookmark.content.sourceUrl ?? null;
- }
- if (bookmark.content.type === BookmarkTypes.TEXT) {
- return bookmark.content.sourceUrl ?? null;
- }
- return null;
-}
-
-export function getBookmarkTitle(bookmark: ZBookmark) {
- let title: string | null = null;
- switch (bookmark.content.type) {
- case BookmarkTypes.LINK:
- title = bookmark.content.title ?? bookmark.content.url;
- break;
- case BookmarkTypes.TEXT:
- title = null;
- break;
- case BookmarkTypes.ASSET:
- title = bookmark.content.fileName ?? null;
- break;
- }
-
- return bookmark.title ? bookmark.title : title;
-}
diff --git a/packages/shared-react/utils/assetUtils.ts b/packages/shared/utils/assetUtils.ts
index 119451d9..119451d9 100644
--- a/packages/shared-react/utils/assetUtils.ts
+++ b/packages/shared/utils/assetUtils.ts
diff --git a/packages/shared/utils/bookmarkUtils.ts b/packages/shared/utils/bookmarkUtils.ts
new file mode 100644
index 00000000..31d7b698
--- /dev/null
+++ b/packages/shared/utils/bookmarkUtils.ts
@@ -0,0 +1,76 @@
+import { BookmarkTypes, ZBookmark, ZBookmarkedLink } from "../types/bookmarks";
+import { getAssetUrl } from "./assetUtils";
+
+const MAX_LOADING_MSEC = 30 * 1000;
+
+export function getBookmarkLinkImageUrl(bookmark: ZBookmarkedLink) {
+ if (bookmark.imageAssetId) {
+ return { url: getAssetUrl(bookmark.imageAssetId), localAsset: true };
+ }
+ if (bookmark.screenshotAssetId) {
+ return { url: getAssetUrl(bookmark.screenshotAssetId), localAsset: true };
+ }
+ return bookmark.imageUrl
+ ? { url: bookmark.imageUrl, localAsset: false }
+ : null;
+}
+
+export function isBookmarkStillCrawling(bookmark: ZBookmark) {
+ return (
+ bookmark.content.type == BookmarkTypes.LINK &&
+ !bookmark.content.crawledAt &&
+ Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
+ );
+}
+
+export function isBookmarkStillTagging(bookmark: ZBookmark) {
+ return (
+ bookmark.taggingStatus == "pending" &&
+ Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
+ );
+}
+
+export function isBookmarkStillSummarizing(bookmark: ZBookmark) {
+ return (
+ bookmark.summarizationStatus == "pending" &&
+ Date.now().valueOf() - bookmark.createdAt.valueOf() < MAX_LOADING_MSEC
+ );
+}
+
+export function isBookmarkStillLoading(bookmark: ZBookmark) {
+ return (
+ isBookmarkStillTagging(bookmark) ||
+ isBookmarkStillCrawling(bookmark) ||
+ isBookmarkStillSummarizing(bookmark)
+ );
+}
+
+export function getSourceUrl(bookmark: ZBookmark) {
+ if (bookmark.content.type === BookmarkTypes.LINK) {
+ return bookmark.content.url;
+ }
+ if (bookmark.content.type === BookmarkTypes.ASSET) {
+ return bookmark.content.sourceUrl ?? null;
+ }
+ if (bookmark.content.type === BookmarkTypes.TEXT) {
+ return bookmark.content.sourceUrl ?? null;
+ }
+ return null;
+}
+
+export function getBookmarkTitle(bookmark: ZBookmark) {
+ let title: string | null = null;
+ switch (bookmark.content.type) {
+ case BookmarkTypes.LINK:
+ title = bookmark.content.title ?? bookmark.content.url;
+ break;
+ case BookmarkTypes.TEXT:
+ title = null;
+ break;
+ case BookmarkTypes.ASSET:
+ title = bookmark.content.fileName ?? null;
+ break;
+ }
+
+ return bookmark.title ? bookmark.title : title;
+}