From 139832ad467ec9e040f436e2bbd34c480fcb477d Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Thu, 24 Oct 2024 22:43:27 +0200 Subject: [PATCH] wip: page update for removing changelog relation --- apps/api/src/index.ts | 12 +++--- apps/app/src/routes/page.$id.index.lazy.tsx | 44 +++++++++++++++------ packages/logger/package.json | 2 +- packages/schema/src/page/base.ts | 2 +- packages/schema/src/page/create.ts | 2 +- packages/schema/src/page/update.ts | 15 ++++++- 6 files changed, 55 insertions(+), 22 deletions(-) diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index b7b65bc..efd42d8 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -23,12 +23,12 @@ export const app = new OpenAPIHono<{ Variables: Variables }>({ defaultHook: handleZodError, }) -app.use( - '*', - sentry({ - dsn: 'https://1d7428bbab0a305078cf4aa380721aa2@o4508167321354240.ingest.de.sentry.io/4508167323648080', - }), -) +// app.use( +// '*', +// sentry({ +// dsn: 'https://1d7428bbab0a305078cf4aa380721aa2@o4508167321354240.ingest.de.sentry.io/4508167323648080', +// }), +// ) app.onError(handleError) app.use('*', cors()) app.use('/v1/*', authentication) diff --git a/apps/app/src/routes/page.$id.index.lazy.tsx b/apps/app/src/routes/page.$id.index.lazy.tsx index 89907d0..b4e8c34 100644 --- a/apps/app/src/routes/page.$id.index.lazy.tsx +++ b/apps/app/src/routes/page.$id.index.lazy.tsx @@ -6,12 +6,23 @@ import { CardTitle, } from '@boring.tools/ui' import { Link, createLazyFileRoute } from '@tanstack/react-router' -import { PlusCircleIcon } from 'lucide-react' -import { usePageById } from '../hooks/usePage' +import { CircleMinusIcon, PlusCircleIcon } from 'lucide-react' +import { usePageById, usePageUpdate } from '../hooks/usePage' const Component = () => { const { id } = Route.useParams() const { data, isPending } = usePageById({ id }) + const pageUpdate = usePageUpdate() + const removeChangelog = (id: string) => { + const payload = { + title: data?.title, + description: data?.description, + changelogIds: data?.changelogs + .filter((log) => log.id !== id) + .map((l) => l.id), + } + pageUpdate.mutate({ id, payload }) + } return (
@@ -33,16 +44,25 @@ const Component = () => {
{data.changelogs.map((changelog) => { return ( - - {changelog.title} - +
+ + {changelog.title} + + + +
) })}
diff --git a/packages/logger/package.json b/packages/logger/package.json index d754df7..c64a69c 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@boring.tools/logger", - "module": "src/index.ts", + "main": "./src/index.ts", "type": "module", "devDependencies": { "@types/bun": "latest" diff --git a/packages/schema/src/page/base.ts b/packages/schema/src/page/base.ts index 4fe01ec..3cc7967 100644 --- a/packages/schema/src/page/base.ts +++ b/packages/schema/src/page/base.ts @@ -6,7 +6,7 @@ export const PageOutput = z example: '', }), title: z.string(), - description: z.string(), + description: z.string().optional(), icon: z.string(), }) .openapi('Page') diff --git a/packages/schema/src/page/create.ts b/packages/schema/src/page/create.ts index 65f9d75..8db11f8 100644 --- a/packages/schema/src/page/create.ts +++ b/packages/schema/src/page/create.ts @@ -5,7 +5,7 @@ export const PageCreateInput = z title: z.string().min(3).openapi({ example: 'My page', }), - description: z.string().openapi({ + description: z.string().optional().openapi({ example: '', }), icon: z.string().optional().openapi({ diff --git a/packages/schema/src/page/update.ts b/packages/schema/src/page/update.ts index 8909e0a..829cc41 100644 --- a/packages/schema/src/page/update.ts +++ b/packages/schema/src/page/update.ts @@ -3,7 +3,20 @@ import { PageOutput } from './base' import { PageCreateInput } from './create' export const PageUpdateOutput = PageOutput -export const PageUpdateInput = PageCreateInput +export const PageUpdateInput = z + .object({ + title: z.string().min(3).optional().openapi({ + example: 'My page', + }), + description: z.string().optional().openapi({ + example: '', + }), + icon: z.string().optional().openapi({ + example: 'base64...', + }), + changelogIds: z.array(z.string().uuid()).optional(), + }) + .openapi('Page') export const PageUpdateParams = z .object({ id: z.string().uuid(),