aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/app
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-01-02 13:00:58 +0200
committerGitHub <noreply@github.com>2025-01-02 13:00:58 +0200
commit5ecdc36b7d60aa66b49e01e9fec8ba61ad537376 (patch)
tree57577822bb104b95900ba577a265fb4f8cf70b78 /apps/web/app
parent5df0258b2cd884347eabfa866d7e7fbc7225cdb3 (diff)
downloadkarakeep-5ecdc36b7d60aa66b49e01e9fec8ba61ad537376.tar.zst
feat: Add support for smart lists (#802)
* feat: Add support for smart lists * i18n * Fix update list endpoint * Add a test for smart lists * Add header to the query explainer * Hide remove from lists in the smart context list * Add proper validation to list form --------- Co-authored-by: Deepak Kapoor <41769111+orthdron@users.noreply.github.com>
Diffstat (limited to 'apps/web/app')
-rw-r--r--apps/web/app/api/v1/lists/[listId]/route.ts6
-rw-r--r--apps/web/app/dashboard/lists/[listId]/page.tsx16
2 files changed, 13 insertions, 9 deletions
diff --git a/apps/web/app/api/v1/lists/[listId]/route.ts b/apps/web/app/api/v1/lists/[listId]/route.ts
index 69c99fda..3fd0a32d 100644
--- a/apps/web/app/api/v1/lists/[listId]/route.ts
+++ b/apps/web/app/api/v1/lists/[listId]/route.ts
@@ -1,7 +1,7 @@
import { NextRequest } from "next/server";
import { buildHandler } from "@/app/api/v1/utils/handler";
-import { zNewBookmarkListSchema } from "@hoarder/shared/types/lists";
+import { zEditBookmarkListSchema } from "@hoarder/shared/types/lists";
export const dynamic = "force-dynamic";
@@ -28,11 +28,11 @@ export const PATCH = (
) =>
buildHandler({
req,
- bodySchema: zNewBookmarkListSchema.partial(),
+ bodySchema: zEditBookmarkListSchema.omit({ listId: true }),
handler: async ({ api, body }) => {
const list = await api.lists.edit({
- listId: params.listId,
...body!,
+ listId: params.listId,
});
return { status: 200, resp: list };
},
diff --git a/apps/web/app/dashboard/lists/[listId]/page.tsx b/apps/web/app/dashboard/lists/[listId]/page.tsx
index f8c5e0b6..159730a1 100644
--- a/apps/web/app/dashboard/lists/[listId]/page.tsx
+++ b/apps/web/app/dashboard/lists/[listId]/page.tsx
@@ -4,6 +4,8 @@ import ListHeader from "@/components/dashboard/lists/ListHeader";
import { api } from "@/server/api/client";
import { TRPCError } from "@trpc/server";
+import { BookmarkListContextProvider } from "@hoarder/shared-react/hooks/bookmark-list-context";
+
export default async function ListPage({
params,
}: {
@@ -22,11 +24,13 @@ export default async function ListPage({
}
return (
- <Bookmarks
- query={{ listId: list.id }}
- showDivider={true}
- showEditorCard={true}
- header={<ListHeader initialData={list} />}
- />
+ <BookmarkListContextProvider list={list}>
+ <Bookmarks
+ query={{ listId: list.id }}
+ showDivider={true}
+ showEditorCard={list.type === "manual"}
+ header={<ListHeader initialData={list} />}
+ />
+ </BookmarkListContextProvider>
);
}