Skip to content
This repository has been archived by the owner on Dec 16, 2024. It is now read-only.

Commit

Permalink
fix: modify jwt reissue logic
Browse files Browse the repository at this point in the history
  • Loading branch information
jspark2000 committed Feb 28, 2024
1 parent 2b4122e commit 8e2bc94
Show file tree
Hide file tree
Showing 13 changed files with 532 additions and 39 deletions.
2 changes: 1 addition & 1 deletion frontend/components.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
"components": "@/components",
"utils": "@/lib/utils"
}
}
}
3 changes: 3 additions & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
"@headlessui/react": "^1.7.18",
"@heroicons/react": "^2.1.1",
"@hookform/resolvers": "^3.3.4",
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-dropdown-menu": "^2.0.6",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-select": "^2.0.0",
"@radix-ui/react-slot": "^1.0.2",
"@storybook/manager-api": "^7.6.13",
"@tailwindcss/forms": "^0.5.7",
Expand All @@ -32,6 +34,7 @@
"sonner": "^1.4.0",
"tailwind-merge": "^2.2.1",
"tailwindcss-animate": "^1.0.7",
"vaul": "^0.9.0",
"zod": "^3.22.4"
},
"devDependencies": {
Expand Down
13 changes: 6 additions & 7 deletions frontend/src/components/ConsoleSidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,11 @@ export default function ConsoleSidebar() {
<Link
href={item.href}
className={clsx(
'group flex gap-x-3 rounded-md p-2 text-sm font-semibold leading-6',
'group flex gap-x-3 rounded-md p-2 text-sm font-bold leading-6',
{
'bg-gray-800 text-white':
pathname.startsWith(item.href),
'text-amber-400': pathname.startsWith(
item.href
),
'text-gray-400 hover:bg-gray-800 hover:text-white':
!pathname.startsWith(item.href)
}
Expand Down Expand Up @@ -212,11 +213,9 @@ export default function ConsoleSidebar() {
<Link
href={item.href}
className={clsx(
'group flex gap-x-3 rounded-md p-2 text-sm font-semibold leading-6',
'group flex gap-x-3 rounded-md p-2 text-sm font-bold leading-6',
{
'bg-gray-800 text-white': pathname.startsWith(
item.href
),
'text-amber-400': pathname.startsWith(item.href),
'text-gray-400 hover:bg-gray-800 hover:text-white':
!pathname.startsWith(item.href)
}
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/components/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export default function Header() {
href={isLogin ? '/console/dashboard' : '/login'}
className="text-sm font-semibold leading-6 text-zinc-900 dark:text-gray-50"
>
{isLogin ? '콘솔로 이동' : 'Log in'}{' '}
{isLogin ? '콘솔로 이동' : '로그인'}{' '}
<span aria-hidden="true">&rarr;</span>
</Link>
</div>
Expand Down Expand Up @@ -131,7 +131,7 @@ export default function Header() {
className="-mx-3 block rounded-lg px-3 py-2.5 text-base font-semibold leading-7 text-zinc-900 hover:bg-gray-400 hover:text-zinc-900/90 dark:text-gray-50"
onClick={() => setMobileMenuOpen(false)}
>
{isLogin ? '콘솔로 이동' : 'Log in'}
{isLogin ? '콘솔로 이동' : '로그인'}
</Link>
</div>
</div>
Expand Down
58 changes: 58 additions & 0 deletions frontend/src/components/ui/alert.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { cn } from '@/lib/utils'
import { cva, type VariantProps } from 'class-variance-authority'
import * as React from 'react'

const alertVariants = cva(
'relative w-full rounded-lg border border-zinc-200 px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-zinc-950 [&>svg~*]:pl-7 dark:border-zinc-800 dark:[&>svg]:text-zinc-50',
{
variants: {
variant: {
default: 'bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50',
destructive:
'border-red-500/50 text-red-500 dark:border-red-500 [&>svg]:text-red-500 dark:border-red-900/50 dark:text-red-900 dark:dark:border-red-900 dark:[&>svg]:text-red-900'
}
},
defaultVariants: {
variant: 'default'
}
}
)

const Alert = React.forwardRef<
HTMLDivElement,
React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>
>(({ className, variant, ...props }, ref) => (
<div
ref={ref}
role="alert"
className={cn(alertVariants({ variant }), className)}
{...props}
/>
))
Alert.displayName = 'Alert'

const AlertTitle = React.forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLHeadingElement>
>(({ className, ...props }, ref) => (
<h5
ref={ref}
className={cn('mb-1 font-medium leading-none tracking-tight', className)}
{...props}
/>
))
AlertTitle.displayName = 'AlertTitle'

const AlertDescription = React.forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLParagraphElement>
>(({ className, ...props }, ref) => (
<div
ref={ref}
className={cn('text-sm [&_p]:leading-relaxed', className)}
{...props}
/>
))
AlertDescription.displayName = 'AlertDescription'

export { Alert, AlertTitle, AlertDescription }
117 changes: 117 additions & 0 deletions frontend/src/components/ui/drawer.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
'use client'

import { cn } from '@/lib/utils'
import * as React from 'react'
import { Drawer as DrawerPrimitive } from 'vaul'

const Drawer = ({
shouldScaleBackground = true,
...props
}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (
<DrawerPrimitive.Root
shouldScaleBackground={shouldScaleBackground}
{...props}
/>
)
Drawer.displayName = 'Drawer'

const DrawerTrigger = DrawerPrimitive.Trigger

const DrawerPortal = DrawerPrimitive.Portal

const DrawerClose = DrawerPrimitive.Close

const DrawerOverlay = React.forwardRef<
React.ElementRef<typeof DrawerPrimitive.Overlay>,
React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>
>(({ className, ...props }, ref) => (
<DrawerPrimitive.Overlay
ref={ref}
className={cn('fixed inset-0 z-50 bg-black/80', className)}
{...props}
/>
))
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName

const DrawerContent = React.forwardRef<
React.ElementRef<typeof DrawerPrimitive.Content>,
React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>
>(({ className, children, ...props }, ref) => (
<DrawerPortal>
<DrawerOverlay />
<DrawerPrimitive.Content
ref={ref}
className={cn(
'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-950',
className
)}
{...props}
>
<div className="mx-auto mt-4 h-2 w-[100px] rounded-full bg-zinc-100 dark:bg-zinc-800" />
{children}
</DrawerPrimitive.Content>
</DrawerPortal>
))
DrawerContent.displayName = 'DrawerContent'

const DrawerHeader = ({
className,
...props
}: React.HTMLAttributes<HTMLDivElement>) => (
<div
className={cn('grid gap-1.5 p-4 text-center sm:text-left', className)}
{...props}
/>
)
DrawerHeader.displayName = 'DrawerHeader'

const DrawerFooter = ({
className,
...props
}: React.HTMLAttributes<HTMLDivElement>) => (
<div
className={cn('mt-auto flex flex-col gap-2 p-4', className)}
{...props}
/>
)
DrawerFooter.displayName = 'DrawerFooter'

const DrawerTitle = React.forwardRef<
React.ElementRef<typeof DrawerPrimitive.Title>,
React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>
>(({ className, ...props }, ref) => (
<DrawerPrimitive.Title
ref={ref}
className={cn(
'text-lg font-semibold leading-none tracking-tight',
className
)}
{...props}
/>
))
DrawerTitle.displayName = DrawerPrimitive.Title.displayName

const DrawerDescription = React.forwardRef<
React.ElementRef<typeof DrawerPrimitive.Description>,
React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>
>(({ className, ...props }, ref) => (
<DrawerPrimitive.Description
ref={ref}
className={cn('text-sm text-zinc-500 dark:text-zinc-400', className)}
{...props}
/>
))
DrawerDescription.displayName = DrawerPrimitive.Description.displayName

export {
Drawer,
DrawerPortal,
DrawerOverlay,
DrawerTrigger,
DrawerClose,
DrawerContent,
DrawerHeader,
DrawerFooter,
DrawerTitle,
DrawerDescription
}
Loading

0 comments on commit 8e2bc94

Please sign in to comment.