From 0c408a504135eee025381248d5eab58f116b8e38 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Wed, 9 Oct 2024 14:32:23 +0200 Subject: [PATCH] feat(app): add version create --- apps/app/package.json | 2 + apps/app/src/base.css | 8 +- apps/app/src/hooks/useChangelog.ts | 28 ++++ apps/app/src/routeTree.gen.ts | 63 ++++++++- .../src/routes/changelog.$id.index.lazy.tsx | 49 +++++++ apps/app/src/routes/changelog.$id.lazy.tsx | 9 +- .../changelog.$id.versionCreate.lazy.tsx | 120 ++++++++++++++++++ apps/app/tailwind.config.js | 2 +- bun.lockb | Bin 426000 -> 485776 bytes 9 files changed, 272 insertions(+), 9 deletions(-) create mode 100644 apps/app/src/routes/changelog.$id.index.lazy.tsx create mode 100644 apps/app/src/routes/changelog.$id.versionCreate.lazy.tsx diff --git a/apps/app/package.json b/apps/app/package.json index d3a854c..e3ae267 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -14,6 +14,8 @@ "@boring.tools/ui": "workspace:*", "@clerk/clerk-react": "^5.9.4", "@hookform/resolvers": "^3.9.0", + "@mdxeditor/editor": "^3.14.0", + "@tailwindcss/typography": "^0.5.15", "@tanstack/react-query": "^5.59.0", "@tanstack/react-router": "^1.58.15", "axios": "^1.7.7", diff --git a/apps/app/src/base.css b/apps/app/src/base.css index 70758f5..968abf4 100644 --- a/apps/app/src/base.css +++ b/apps/app/src/base.css @@ -77,6 +77,12 @@ } body { @apply bg-background text-foreground; - font-feature-settings: "rlig" 1, "calt" 1; + font-feature-settings: + "rlig" 1, + "calt" 1; + } + + .prose { + @apply text-foreground; } } diff --git a/apps/app/src/hooks/useChangelog.ts b/apps/app/src/hooks/useChangelog.ts index 71db74f..1e0b681 100644 --- a/apps/app/src/hooks/useChangelog.ts +++ b/apps/app/src/hooks/useChangelog.ts @@ -2,6 +2,9 @@ import type { ChangelogCreateInput, ChangelogOutput, ChangelogUpdateInput, + VersionCreateInput, + VersionOutput, + VersionUpdateInput, } from '@boring.tools/schema' import { useAuth } from '@clerk/clerk-react' import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' @@ -12,6 +15,10 @@ type Changelog = z.infer type ChangelogCreate = z.infer type ChangelogUpdate = z.infer +type Version = z.infer +type VersionCreate = z.infer +type VersionUpdate = z.infer + export const useChangelogList = () => { const { getToken } = useAuth() return useQuery({ @@ -103,3 +110,24 @@ export const useChangelogRemove = () => { }, }) } + +export const useChangelogVersionCreate = () => { + const { getToken } = useAuth() + const queryClient = useQueryClient() + + return useMutation({ + mutationFn: async (payload: VersionCreate): Promise> => + await queryFetch({ + path: 'changelog/version', + data: payload, + method: 'post', + token: await getToken(), + }), + onSuccess: (data) => { + queryClient.invalidateQueries({ queryKey: ['changelogList'] }) + queryClient.invalidateQueries({ + queryKey: ['changelogById', data.changelogId], + }) + }, + }) +} diff --git a/apps/app/src/routeTree.gen.ts b/apps/app/src/routeTree.gen.ts index 5a1e246..eaf6464 100644 --- a/apps/app/src/routeTree.gen.ts +++ b/apps/app/src/routeTree.gen.ts @@ -21,6 +21,10 @@ const UserIndexLazyImport = createFileRoute('/user/')() const ChangelogIndexLazyImport = createFileRoute('/changelog/')() const ChangelogCreateLazyImport = createFileRoute('/changelog/create')() const ChangelogIdLazyImport = createFileRoute('/changelog/$id')() +const ChangelogIdIndexLazyImport = createFileRoute('/changelog/$id/')() +const ChangelogIdVersionCreateLazyImport = createFileRoute( + '/changelog/$id/versionCreate', +)() const ChangelogIdEditLazyImport = createFileRoute('/changelog/$id/edit')() // Create/Update Routes @@ -54,6 +58,21 @@ const ChangelogIdLazyRoute = ChangelogIdLazyImport.update({ getParentRoute: () => rootRoute, } as any).lazy(() => import('./routes/changelog.$id.lazy').then((d) => d.Route)) +const ChangelogIdIndexLazyRoute = ChangelogIdIndexLazyImport.update({ + path: '/', + getParentRoute: () => ChangelogIdLazyRoute, +} as any).lazy(() => + import('./routes/changelog.$id.index.lazy').then((d) => d.Route), +) + +const ChangelogIdVersionCreateLazyRoute = + ChangelogIdVersionCreateLazyImport.update({ + path: '/versionCreate', + getParentRoute: () => ChangelogIdLazyRoute, + } as any).lazy(() => + import('./routes/changelog.$id.versionCreate.lazy').then((d) => d.Route), + ) + const ChangelogIdEditLazyRoute = ChangelogIdEditLazyImport.update({ path: '/edit', getParentRoute: () => ChangelogIdLazyRoute, @@ -107,6 +126,20 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof ChangelogIdEditLazyImport parentRoute: typeof ChangelogIdLazyImport } + '/changelog/$id/versionCreate': { + id: '/changelog/$id/versionCreate' + path: '/versionCreate' + fullPath: '/changelog/$id/versionCreate' + preLoaderRoute: typeof ChangelogIdVersionCreateLazyImport + parentRoute: typeof ChangelogIdLazyImport + } + '/changelog/$id/': { + id: '/changelog/$id/' + path: '/' + fullPath: '/changelog/$id/' + preLoaderRoute: typeof ChangelogIdIndexLazyImport + parentRoute: typeof ChangelogIdLazyImport + } } } @@ -114,10 +147,14 @@ declare module '@tanstack/react-router' { interface ChangelogIdLazyRouteChildren { ChangelogIdEditLazyRoute: typeof ChangelogIdEditLazyRoute + ChangelogIdVersionCreateLazyRoute: typeof ChangelogIdVersionCreateLazyRoute + ChangelogIdIndexLazyRoute: typeof ChangelogIdIndexLazyRoute } const ChangelogIdLazyRouteChildren: ChangelogIdLazyRouteChildren = { ChangelogIdEditLazyRoute: ChangelogIdEditLazyRoute, + ChangelogIdVersionCreateLazyRoute: ChangelogIdVersionCreateLazyRoute, + ChangelogIdIndexLazyRoute: ChangelogIdIndexLazyRoute, } const ChangelogIdLazyRouteWithChildren = ChangelogIdLazyRoute._addFileChildren( @@ -131,15 +168,18 @@ export interface FileRoutesByFullPath { '/changelog': typeof ChangelogIndexLazyRoute '/user': typeof UserIndexLazyRoute '/changelog/$id/edit': typeof ChangelogIdEditLazyRoute + '/changelog/$id/versionCreate': typeof ChangelogIdVersionCreateLazyRoute + '/changelog/$id/': typeof ChangelogIdIndexLazyRoute } export interface FileRoutesByTo { '/': typeof IndexLazyRoute - '/changelog/$id': typeof ChangelogIdLazyRouteWithChildren '/changelog/create': typeof ChangelogCreateLazyRoute '/changelog': typeof ChangelogIndexLazyRoute '/user': typeof UserIndexLazyRoute '/changelog/$id/edit': typeof ChangelogIdEditLazyRoute + '/changelog/$id/versionCreate': typeof ChangelogIdVersionCreateLazyRoute + '/changelog/$id': typeof ChangelogIdIndexLazyRoute } export interface FileRoutesById { @@ -150,6 +190,8 @@ export interface FileRoutesById { '/changelog/': typeof ChangelogIndexLazyRoute '/user/': typeof UserIndexLazyRoute '/changelog/$id/edit': typeof ChangelogIdEditLazyRoute + '/changelog/$id/versionCreate': typeof ChangelogIdVersionCreateLazyRoute + '/changelog/$id/': typeof ChangelogIdIndexLazyRoute } export interface FileRouteTypes { @@ -161,14 +203,17 @@ export interface FileRouteTypes { | '/changelog' | '/user' | '/changelog/$id/edit' + | '/changelog/$id/versionCreate' + | '/changelog/$id/' fileRoutesByTo: FileRoutesByTo to: | '/' - | '/changelog/$id' | '/changelog/create' | '/changelog' | '/user' | '/changelog/$id/edit' + | '/changelog/$id/versionCreate' + | '/changelog/$id' id: | '__root__' | '/' @@ -177,6 +222,8 @@ export interface FileRouteTypes { | '/changelog/' | '/user/' | '/changelog/$id/edit' + | '/changelog/$id/versionCreate' + | '/changelog/$id/' fileRoutesById: FileRoutesById } @@ -221,7 +268,9 @@ export const routeTree = rootRoute "/changelog/$id": { "filePath": "changelog.$id.lazy.tsx", "children": [ - "/changelog/$id/edit" + "/changelog/$id/edit", + "/changelog/$id/versionCreate", + "/changelog/$id/" ] }, "/changelog/create": { @@ -236,6 +285,14 @@ export const routeTree = rootRoute "/changelog/$id/edit": { "filePath": "changelog.$id.edit.lazy.tsx", "parent": "/changelog/$id" + }, + "/changelog/$id/versionCreate": { + "filePath": "changelog.$id.versionCreate.lazy.tsx", + "parent": "/changelog/$id" + }, + "/changelog/$id/": { + "filePath": "changelog.$id.index.lazy.tsx", + "parent": "/changelog/$id" } } } diff --git a/apps/app/src/routes/changelog.$id.index.lazy.tsx b/apps/app/src/routes/changelog.$id.index.lazy.tsx new file mode 100644 index 0000000..5abe24f --- /dev/null +++ b/apps/app/src/routes/changelog.$id.index.lazy.tsx @@ -0,0 +1,49 @@ +import { + Button, + Card, + CardContent, + CardHeader, + CardTitle, + Tooltip, + TooltipContent, + TooltipTrigger, +} from '@boring.tools/ui' +import { Link, Outlet, createLazyFileRoute } from '@tanstack/react-router' +import { PlusCircleIcon } from 'lucide-react' +import { useChangelogById } from '../hooks/useChangelog' + +const Component = () => { + const { id } = Route.useParams() + const { data, isPending } = useChangelogById({ id }) + + return ( +
+ {!isPending && data && ( +
+ + +
+ Versions ({data.versions?.length}) + + + + +
+
+ + {data.versions?.map((version) => { + return
{version.version}
+ })} +
+
+
+ )} +
+ ) +} + +export const Route = createLazyFileRoute('/changelog/$id/')({ + component: Component, +}) diff --git a/apps/app/src/routes/changelog.$id.lazy.tsx b/apps/app/src/routes/changelog.$id.lazy.tsx index 0f2b416..f2cc60b 100644 --- a/apps/app/src/routes/changelog.$id.lazy.tsx +++ b/apps/app/src/routes/changelog.$id.lazy.tsx @@ -47,7 +47,7 @@ const Component = () => {
- + {/*
- - +
+ +
)} diff --git a/apps/app/src/routes/changelog.$id.versionCreate.lazy.tsx b/apps/app/src/routes/changelog.$id.versionCreate.lazy.tsx new file mode 100644 index 0000000..a572c99 --- /dev/null +++ b/apps/app/src/routes/changelog.$id.versionCreate.lazy.tsx @@ -0,0 +1,120 @@ +import { VersionCreateInput } from '@boring.tools/schema' +import { + Button, + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, + Input, +} from '@boring.tools/ui' +import { zodResolver } from '@hookform/resolvers/zod' +import { + BlockTypeSelect, + BoldItalicUnderlineToggles, + ListsToggle, + MDXEditor, + UndoRedo, + headingsPlugin, + listsPlugin, + quotePlugin, + thematicBreakPlugin, + toolbarPlugin, +} from '@mdxeditor/editor' +import { createLazyFileRoute } from '@tanstack/react-router' +import { useNavigate } from '@tanstack/react-router' +import { useForm } from 'react-hook-form' +import type { z } from 'zod' +import { useChangelogVersionCreate } from '../hooks/useChangelog' +import '@mdxeditor/editor/style.css' + +const Component = () => { + const { id } = Route.useParams() + const navigate = useNavigate({ from: `/changelog/${id}/versionCreate` }) + const versionCreate = useChangelogVersionCreate() + const form = useForm>({ + resolver: zodResolver(VersionCreateInput), + defaultValues: { + changelogId: id, + version: '', + markdown: '', + }, + }) + + const onSubmit = (values: z.infer) => { + versionCreate.mutate(values, { + onSuccess(data) { + navigate({ to: '/changelog/$id', params: { id: data.changelogId } }) + }, + }) + } + + return ( +
+

New version

+
+ + ( + + Version + + + {' '} + + + )} + /> + + ( + + Notes + + ( + <> + + + + + + ), + }), + ]} + {...field} + /> + {' '} + + + )} + /> + + + + +
+ ) +} + +export const Route = createLazyFileRoute('/changelog/$id/versionCreate')({ + component: Component, +}) diff --git a/apps/app/tailwind.config.js b/apps/app/tailwind.config.js index 1659a14..5cff6b1 100644 --- a/apps/app/tailwind.config.js +++ b/apps/app/tailwind.config.js @@ -76,5 +76,5 @@ export default { }, }, }, - plugins: [require('tailwindcss-animate')], + plugins: [require('tailwindcss-animate'), require('@tailwindcss/typography')], } diff --git a/bun.lockb b/bun.lockb index c99871e445c82014d64aec0d96e50046516e0a86..89ddb2f48270e7a971304fc107a532f7ef41e15a 100755 GIT binary patch delta 51582 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