summaryrefslogtreecommitdiff
path: root/components/login/login-form-skeleton.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-03-26 00:37:41 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-03-26 00:37:41 +0000
commite0dfb55c5457aec489fc084c4567e791b4c65eb1 (patch)
tree68543a65d88f5afb3a0202925804103daa91bc6f /components/login/login-form-skeleton.tsx
3/25 까지의 대표님 작업사항
Diffstat (limited to 'components/login/login-form-skeleton.tsx')
-rw-r--r--components/login/login-form-skeleton.tsx71
1 files changed, 71 insertions, 0 deletions
diff --git a/components/login/login-form-skeleton.tsx b/components/login/login-form-skeleton.tsx
new file mode 100644
index 00000000..c434c4b7
--- /dev/null
+++ b/components/login/login-form-skeleton.tsx
@@ -0,0 +1,71 @@
+import { Skeleton } from "@/components/ui/skeleton"
+import { Button } from "@/components/ui/button"
+import { Ship, Loader2, GlobeIcon, ChevronDownIcon } from "lucide-react"
+import Link from "next/link"
+import { cn } from "@/lib/utils"
+import { buttonVariants } from "@/components/ui/button"
+
+export function LoginFormSkeleton() {
+ return (
+ <div className="container relative flex h-screen flex-col items-center justify-center md:grid lg:max-w-none lg:grid-cols-2 lg:px-0">
+ {/* Left Content */}
+ <div className="flex flex-col w-full h-screen lg:p-2">
+ {/* Top bar with Logo + eVCP (left) and "Request Vendor Repository" (right) */}
+ <div className="flex items-center justify-between">
+ <div className="flex items-center space-x-2">
+ <Ship className="w-4 h-4" />
+ <span className="text-md font-bold">eVCP</span>
+ </div>
+ <Link
+ href="/partners/repository"
+ className={cn(buttonVariants({ variant: "ghost" }))}
+ >
+ Request Vendor Repository
+ </Link>
+ </div>
+
+ {/* Content section that occupies remaining space, centered vertically */}
+ <div className="flex-1 flex items-center justify-center">
+ {/* Form container */}
+ <div className="mx-auto w-full flex flex-col space-y-6 sm:w-[350px]">
+ <div className="p-6 md:p-8">
+ <div className="flex flex-col gap-6">
+ <div className="flex flex-col items-center text-center">
+ <Skeleton className="h-8 w-48 mb-2" />
+ </div>
+ <div className="grid gap-2">
+ <Skeleton className="h-10 w-full" />
+ </div>
+ <Skeleton className="h-10 w-full" />
+ <div className="text-center text-sm mx-auto">
+ <Button variant="ghost" className="flex items-center gap-2" disabled>
+ <GlobeIcon className="h-4 w-4" />
+ <Skeleton className="h-4 w-16" />
+ <ChevronDownIcon className="h-4 w-4" />
+ </Button>
+ </div>
+ </div>
+ </div>
+
+ <div className="text-balance text-center">
+ <Skeleton className="h-4 w-[280px] mx-auto" />
+ </div>
+ </div>
+ </div>
+ </div>
+
+ {/* Right BG 이미지 영역 */}
+ <div className="relative hidden h-full flex-col p-10 text-white dark:border-r md:flex">
+ <div className="absolute inset-0 bg-zinc-100 animate-pulse" />
+ <div className="relative z-20 flex items-center text-lg font-medium">
+ {/* Optional top-right content on the image side */}
+ </div>
+ <div className="relative z-20 mt-auto">
+ <blockquote className="space-y-2">
+ <Skeleton className="h-4 w-[250px] bg-white/50" />
+ </blockquote>
+ </div>
+ </div>
+ </div>
+ )
+} \ No newline at end of file