From 2263c0fcd677d9deb68369c463b312a8b6ff4906 Mon Sep 17 00:00:00 2001 From: haappi <74637670+haappi@users.noreply.github.com> Date: Wed, 20 Aug 2025 03:46:21 -0500 Subject: feat: Render human tags before AI tags (#1740) --- apps/browser-extension/src/components/TagList.tsx | 24 +++++++++------- .../web/components/dashboard/bookmarks/TagList.tsx | 32 ++++++++++++---------- .../components/dashboard/bookmarks/TagsEditor.tsx | 13 +++++---- 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/apps/browser-extension/src/components/TagList.tsx b/apps/browser-extension/src/components/TagList.tsx index 4c5f6dfa..5635a7c2 100644 --- a/apps/browser-extension/src/components/TagList.tsx +++ b/apps/browser-extension/src/components/TagList.tsx @@ -14,16 +14,20 @@ export default function TagList({ bookmarkId }: { bookmarkId: string }) { {bookmark.tags.length === 0 && !isBookmarkStillTagging(bookmark) && ( No tags )} - {bookmark.tags.map((tag) => ( - - {tag.name} - - ))} + {[...bookmark.tags] + .sort((a, b) => + a.attachedBy === "ai" ? 1 : b.attachedBy === "ai" ? -1 : 0, + ) + .map((tag) => ( + + {tag.name} + + ))} {isBookmarkStillTagging(bookmark) && ( AI tags loading... )} diff --git a/apps/web/components/dashboard/bookmarks/TagList.tsx b/apps/web/components/dashboard/bookmarks/TagList.tsx index 593a269b..e8bed9eb 100644 --- a/apps/web/components/dashboard/bookmarks/TagList.tsx +++ b/apps/web/components/dashboard/bookmarks/TagList.tsx @@ -24,20 +24,24 @@ export default function TagList({ } return ( <> - {bookmark.tags.map((t) => ( -
- - {t.name} - -
- ))} + {bookmark.tags + .sort((a, b) => + a.attachedBy === "ai" ? 1 : b.attachedBy === "ai" ? -1 : 0, + ) + .map((t) => ( +
+ + {t.name} + +
+ ))} ); } diff --git a/apps/web/components/dashboard/bookmarks/TagsEditor.tsx b/apps/web/components/dashboard/bookmarks/TagsEditor.tsx index 5efdd0dd..1893c2a6 100644 --- a/apps/web/components/dashboard/bookmarks/TagsEditor.tsx +++ b/apps/web/components/dashboard/bookmarks/TagsEditor.tsx @@ -96,11 +96,14 @@ export function TagsEditor({ attachedBy: "human" as const, })) ?? [] } - value={optimisticTags.map((t) => ({ - label: t.name, - value: t.id, - attachedBy: t.attachedBy, - }))} + value={optimisticTags + .slice() + .sort((a) => (a.attachedBy === "human" ? -1 : 1)) + .map((t) => ({ + label: t.name, + value: t.id, + attachedBy: t.attachedBy, + }))} isMulti closeMenuOnSelect={false} isClearable={false} -- cgit v1.2.3-70-g09d2