UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

35 lines (32 loc) 2.62 kB
import { jsxs, jsx } from 'react/jsx-runtime'; import { r as reactExports } from '../../_virtual/index4.js'; import { Button } from '../ui/Button.js'; import Image from 'next/image'; function UserProfile() { var _a, _b; const { data: session, status } = reactExports.useSession(); if (status === "loading") { return (jsxs("div", { className: "flex items-center space-x-2", children: [jsx("div", { className: "animate-pulse", children: jsx("div", { className: "h-8 w-8 bg-gray-300 rounded-full" }) }), jsx("div", { className: "animate-pulse", children: jsx("div", { className: "h-4 w-20 bg-gray-300 rounded" }) })] })); } if (status === "unauthenticated") { return (jsx("div", { className: "flex items-center space-x-2", children: jsx(Button, { onClick: () => (window.location.href = "/auth/signin"), variant: "outline", size: "sm", children: "\uB85C\uADF8\uC778" }) })); } if (!(session === null || session === void 0 ? void 0 : session.user)) { return null; } const handleSignOut = () => { reactExports.signOut({ callbackUrl: "/", redirect: true, }); }; return (jsxs("div", { className: "flex items-center space-x-3", children: [jsx("div", { className: "flex-shrink-0", children: session.user.image ? (jsx(Image, { src: session.user.image, alt: session.user.name || "사용자", width: 32, height: 32, className: "rounded-full", onError: (e) => { // 이미지 로드 실패시 기본 아바타로 변경 const target = e.target; target.style.display = "none"; } })) : (jsx("div", { className: "h-8 w-8 bg-blue-500 rounded-full flex items-center justify-center", children: jsx("span", { className: "text-white text-sm font-medium", children: ((_a = session.user.name) === null || _a === void 0 ? void 0 : _a.charAt(0)) || ((_b = session.user.email) === null || _b === void 0 ? void 0 : _b.charAt(0)) || "U" }) })) }), jsxs("div", { className: "flex-1 min-w-0", children: [jsx("p", { className: "text-sm font-medium text-gray-900 truncate", children: session.user.name || session.user.email }), session.user.name && session.user.email && (jsx("p", { className: "text-xs text-gray-500 truncate", children: session.user.email }))] }), jsx(Button, { onClick: handleSignOut, variant: "ghost", size: "sm", className: "text-gray-600 hover:text-gray-900", children: "\uB85C\uADF8\uC544\uC6C3" })] })); } export { UserProfile }; //# sourceMappingURL=UserProfile.js.map