aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/browser-extension/src/components/ListsSelector.tsx50
-rw-r--r--apps/mobile/app/dashboard/bookmarks/[slug]/manage_lists.tsx6
-rw-r--r--apps/web/components/dashboard/lists/BookmarkListSelector.tsx9
3 files changed, 38 insertions, 27 deletions
diff --git a/apps/browser-extension/src/components/ListsSelector.tsx b/apps/browser-extension/src/components/ListsSelector.tsx
index 379338b6..86c151d1 100644
--- a/apps/browser-extension/src/components/ListsSelector.tsx
+++ b/apps/browser-extension/src/components/ListsSelector.tsx
@@ -74,31 +74,33 @@ export function ListsSelector({ bookmarkId }: { bookmarkId: string }) {
<CommandList>
<CommandEmpty>You don&apos;t have any lists.</CommandEmpty>
<CommandGroup>
- {allLists?.allPaths.map((path) => {
- const lastItem = path[path.length - 1];
+ {allLists?.allPaths
+ .filter((path) => path[path.length - 1].userRole !== "viewer")
+ .map((path) => {
+ const lastItem = path[path.length - 1];
- return (
- <CommandItem
- key={lastItem.id}
- value={lastItem.id}
- keywords={[lastItem.name, lastItem.icon]}
- onSelect={toggleList}
- disabled={currentlyUpdating.has(lastItem.id)}
- >
- <Check
- className={cn(
- "mr-2 size-4",
- existingListIds.has(lastItem.id)
- ? "opacity-100"
- : "opacity-0",
- )}
- />
- {path
- .map((item) => `${item.icon} ${item.name}`)
- .join(" / ")}
- </CommandItem>
- );
- })}
+ return (
+ <CommandItem
+ key={lastItem.id}
+ value={lastItem.id}
+ keywords={[lastItem.name, lastItem.icon]}
+ onSelect={toggleList}
+ disabled={currentlyUpdating.has(lastItem.id)}
+ >
+ <Check
+ className={cn(
+ "mr-2 size-4",
+ existingListIds.has(lastItem.id)
+ ? "opacity-100"
+ : "opacity-0",
+ )}
+ />
+ {path
+ .map((item) => `${item.icon} ${item.name}`)
+ .join(" / ")}
+ </CommandItem>
+ );
+ })}
</CommandGroup>
</CommandList>
</Command>
diff --git a/apps/mobile/app/dashboard/bookmarks/[slug]/manage_lists.tsx b/apps/mobile/app/dashboard/bookmarks/[slug]/manage_lists.tsx
index 7250d06b..c502c07f 100644
--- a/apps/mobile/app/dashboard/bookmarks/[slug]/manage_lists.tsx
+++ b/apps/mobile/app/dashboard/bookmarks/[slug]/manage_lists.tsx
@@ -68,6 +68,10 @@ const ListPickerPage = () => {
};
const { allPaths } = data ?? {};
+ // Filter out lists where user is a viewer (can't add/remove bookmarks)
+ const filteredPaths = allPaths?.filter(
+ (path) => path[path.length - 1].userRole !== "viewer",
+ );
return (
<CustomSafeAreaView>
<FlatList
@@ -97,7 +101,7 @@ const ListPickerPage = () => {
</Pressable>
</View>
)}
- data={allPaths}
+ data={filteredPaths}
/>
</CustomSafeAreaView>
);
diff --git a/apps/web/components/dashboard/lists/BookmarkListSelector.tsx b/apps/web/components/dashboard/lists/BookmarkListSelector.tsx
index a267c692..7f916949 100644
--- a/apps/web/components/dashboard/lists/BookmarkListSelector.tsx
+++ b/apps/web/components/dashboard/lists/BookmarkListSelector.tsx
@@ -46,10 +46,15 @@ export function BookmarkListSelector({
}
allPaths = allPaths?.filter((path) => {
- if (hideBookmarkIds.includes(path[path.length - 1].id)) {
+ const lastItem = path[path.length - 1];
+ if (hideBookmarkIds.includes(lastItem.id)) {
return false;
}
- if (!listTypes.includes(path[path.length - 1].type)) {
+ if (!listTypes.includes(lastItem.type)) {
+ return false;
+ }
+ // Hide lists where user is a viewer (can't add/remove bookmarks)
+ if (lastItem.userRole === "viewer") {
return false;
}
if (!hideSubtreeOf) {