From 1d7fbbe6413dc4b0c30b1299d6ea3a853b4006a8 Mon Sep 17 00:00:00 2001 From: TOHAACK Date: Tue, 23 Apr 2024 09:42:32 +0200 Subject: [PATCH] feat: mock up header component --- packages/reservation-platform/package.json | 1 + packages/reservation-platform/pnpm-lock.yaml | 29 ++++ .../src/components/Header.tsx | 158 ++---------------- .../src/components/ui/avatar.tsx | 50 ++++++ 4 files changed, 96 insertions(+), 142 deletions(-) create mode 100644 packages/reservation-platform/src/components/ui/avatar.tsx diff --git a/packages/reservation-platform/package.json b/packages/reservation-platform/package.json index f4bbc53..192bbf5 100644 --- a/packages/reservation-platform/package.json +++ b/packages/reservation-platform/package.json @@ -15,6 +15,7 @@ "dependencies": { "@auth/prisma-adapter": "^1.4.0", "@prisma/client": "^5.10.2", + "@radix-ui/react-avatar": "^1.0.4", "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-dropdown-menu": "^2.0.6", diff --git a/packages/reservation-platform/pnpm-lock.yaml b/packages/reservation-platform/pnpm-lock.yaml index 198c3f9..27dd9fb 100644 --- a/packages/reservation-platform/pnpm-lock.yaml +++ b/packages/reservation-platform/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@prisma/client': specifier: ^5.10.2 version: 5.12.1(prisma@5.12.1) + '@radix-ui/react-avatar': + specifier: ^1.0.4 + version: 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-checkbox': specifier: ^1.0.4 version: 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -303,6 +306,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-avatar@1.0.4': + resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-checkbox@1.0.4': resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: @@ -2402,6 +2418,19 @@ snapshots: '@types/react': 18.2.79 '@types/react-dom': 18.2.25 + '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 + '@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 diff --git a/packages/reservation-platform/src/components/Header.tsx b/packages/reservation-platform/src/components/Header.tsx index 0ce192f..107c2bd 100644 --- a/packages/reservation-platform/src/components/Header.tsx +++ b/packages/reservation-platform/src/components/Header.tsx @@ -1,150 +1,24 @@ import Link from "next/link"; -import { - CircleUser, - Menu, - Package2, - Scale3DIcon, - Search, - VaultIcon, -} from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { Checkbox } from "@/components/ui/checkbox"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; -import { Input } from "@/components/ui/input"; -import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; +import { VaultIcon } from "lucide-react"; +import { Avatar, AvatarFallback } from "@/components/ui/avatar"; interface HeaderProps {} export default function Header(props: HeaderProps) { return ( -
- - - - - - - - - -
-
-
- - -
-
- - - - - - My Account - - Settings - Support - - Logout - - -
+
+ + +
MYP
+ Manage your Printer + + + + CN + +
); } diff --git a/packages/reservation-platform/src/components/ui/avatar.tsx b/packages/reservation-platform/src/components/ui/avatar.tsx new file mode 100644 index 0000000..51e507b --- /dev/null +++ b/packages/reservation-platform/src/components/ui/avatar.tsx @@ -0,0 +1,50 @@ +"use client" + +import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" + +import { cn } from "@/lib/utils" + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Avatar.displayName = AvatarPrimitive.Root.displayName + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarImage.displayName = AvatarPrimitive.Image.displayName + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName + +export { Avatar, AvatarImage, AvatarFallback }