From 599bdd29789038bf5edd46ac19c0ba855b236e76 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Sun, 20 Oct 2024 20:53:30 +0200 Subject: [PATCH] feat(app): add pagewrapper component with breadcrumbs --- apps/app/src/components/Layout.tsx | 33 +--- apps/app/src/components/PageWrapper.tsx | 63 ++++++++ apps/app/src/routes/changelog.$id.lazy.tsx | 81 +++++----- apps/app/src/routes/changelog.create.lazy.tsx | 143 ++++++++++-------- apps/app/src/routes/changelog.index.lazy.tsx | 77 +++++----- 5 files changed, 230 insertions(+), 167 deletions(-) create mode 100644 apps/app/src/components/PageWrapper.tsx diff --git a/apps/app/src/components/Layout.tsx b/apps/app/src/components/Layout.tsx index 6cffd2a..7aca174 100644 --- a/apps/app/src/components/Layout.tsx +++ b/apps/app/src/components/Layout.tsx @@ -1,4 +1,4 @@ -import { Separator, SidebarInset, SidebarTrigger } from '@boring.tools/ui' +import { SidebarInset } from '@boring.tools/ui' import type { ReactNode } from 'react' import { Sidebar } from './Sidebar' @@ -8,37 +8,8 @@ export const description = export const Layout = ({ children }: { children: ReactNode | ReactNode[] }) => { return ( <> - {/* */} - -
-
- - {/* */} - {/* - - - - Building Your Application - - - - - Data Fetching - - - */} -
-
- -
-
-
- {children} -
-
-
-
+ {children} ) } diff --git a/apps/app/src/components/PageWrapper.tsx b/apps/app/src/components/PageWrapper.tsx new file mode 100644 index 0000000..5e1f904 --- /dev/null +++ b/apps/app/src/components/PageWrapper.tsx @@ -0,0 +1,63 @@ +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator, + Separator, + SidebarTrigger, +} from '@boring.tools/ui' +import { Link } from '@tanstack/react-router' + +type Breadcrumbs = { + name: string + to: string +} + +export const PageWrapper = ({ + children, + breadcrumbs, +}: { children: React.ReactNode; breadcrumbs?: Breadcrumbs[] }) => { + return ( + <> +
+
+ + {/* */} + + + + {breadcrumbs?.map((crumb, key) => { + if (breadcrumbs.length - 1 === key) { + return ( + + {crumb.name} + + ) + } + + return ( +
+ + + {crumb.name} + + + +
+ ) + })} +
+
+
+
+ +
+
+ {children} +
+
+ + ) +} diff --git a/apps/app/src/routes/changelog.$id.lazy.tsx b/apps/app/src/routes/changelog.$id.lazy.tsx index 46f9b79..48f6837 100644 --- a/apps/app/src/routes/changelog.$id.lazy.tsx +++ b/apps/app/src/routes/changelog.$id.lazy.tsx @@ -7,6 +7,7 @@ import { import { Link, Outlet, createLazyFileRoute } from '@tanstack/react-router' import { FileStackIcon, PencilIcon } from 'lucide-react' import { ChangelogDelete } from '../components/Changelog/Delete' +import { PageWrapper } from '../components/PageWrapper' import { useChangelogById } from '../hooks/useChangelog' const Component = () => { @@ -25,24 +26,35 @@ const Component = () => { } return ( -
- {!isPending && data && ( -
-
-
- -
-

{data.title}

+ +
+ {!isPending && data && ( +
+
+
+ +
+

{data.title}

-

{data.description}

+

+ {data.description} +

+
-
-
- {/* +
+ {/* - - - -

Edit

-
-
+ + + + + + + +

Edit

+
+
- + +
+
+
+
-
- -
-
- )} -
+ )} +
+ ) } diff --git a/apps/app/src/routes/changelog.create.lazy.tsx b/apps/app/src/routes/changelog.create.lazy.tsx index 56735e7..bb4c93c 100644 --- a/apps/app/src/routes/changelog.create.lazy.tsx +++ b/apps/app/src/routes/changelog.create.lazy.tsx @@ -17,6 +17,7 @@ import { createLazyFileRoute } from '@tanstack/react-router' import { useNavigate } from '@tanstack/react-router' import { useForm } from 'react-hook-form' import type { z } from 'zod' +import { PageWrapper } from '../components/PageWrapper' import { useChangelogCreate } from '../hooks/useChangelog' const Component = () => { @@ -40,75 +41,85 @@ const Component = () => { } return ( -
-

New changelog

+ +
+

New changelog

-
- - ( - - Title - - - {' '} - - - )} - /> + + + ( + + Title + + + {' '} + + + )} + /> - ( - - Description - -