신규 페이지: - 회계관리: 거래처, 예상비용, 청구서, 발주서 - 게시판: 공지사항, 자료실, 커뮤니티 - 고객센터: 문의/FAQ - 설정: 계정, 알림, 출퇴근, 팝업, 구독, 결제내역 - 리포트 (차트 시각화) - 개발자 테스트 URL 페이지 기능 개선: - HR 직원관리/휴가관리/카드관리 강화 - IntegratedListTemplateV2 확장 - AuthenticatedLayout 패딩 표준화 - 로그인 페이지 UI 개선 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
83 lines
2.3 KiB
TypeScript
83 lines
2.3 KiB
TypeScript
'use client';
|
|
|
|
import { Check } from 'lucide-react';
|
|
import { Button } from '@/components/ui/button';
|
|
|
|
interface AttendanceCompleteProps {
|
|
type: 'check-in' | 'check-out';
|
|
time: string;
|
|
date: string;
|
|
location: string;
|
|
onConfirm: () => void;
|
|
}
|
|
|
|
export default function AttendanceComplete({
|
|
type,
|
|
time,
|
|
date,
|
|
location,
|
|
onConfirm,
|
|
}: AttendanceCompleteProps) {
|
|
const title = type === 'check-in' ? '출근 완료' : '퇴근 완료';
|
|
const headerTitle = type === 'check-in' ? '출근하기' : '퇴근하기';
|
|
|
|
return (
|
|
<div className="flex flex-col h-full">
|
|
{/* 헤더 타이틀 */}
|
|
<div className="text-center py-4 border-b">
|
|
<h1 className="text-lg font-semibold">{headerTitle}</h1>
|
|
</div>
|
|
|
|
{/* 완료 내용 */}
|
|
<div className="flex-1 flex flex-col items-center justify-center px-6">
|
|
{/* 체크 아이콘 */}
|
|
<div className="w-20 h-20 rounded-full border-2 border-gray-300 flex items-center justify-center mb-6">
|
|
<Check className="w-10 h-10 text-gray-600" strokeWidth={2} />
|
|
</div>
|
|
|
|
{/* 완료 텍스트 */}
|
|
<h2 className="text-xl font-bold text-red-500 mb-2">{title}</h2>
|
|
|
|
{/* 시간 */}
|
|
<p className="text-2xl font-semibold text-gray-800 mb-4">{time}</p>
|
|
|
|
{/* 날짜 */}
|
|
<p className="text-gray-500 mb-6">{date}</p>
|
|
|
|
{/* 위치 */}
|
|
<div className="flex items-center text-gray-500">
|
|
<svg
|
|
className="w-4 h-4 mr-1"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
viewBox="0 0 24 24"
|
|
>
|
|
<path
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
strokeWidth={2}
|
|
d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"
|
|
/>
|
|
<path
|
|
strokeLinecap="round"
|
|
strokeLinejoin="round"
|
|
strokeWidth={2}
|
|
d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"
|
|
/>
|
|
</svg>
|
|
<span>{location}</span>
|
|
</div>
|
|
</div>
|
|
|
|
{/* 확인 버튼 */}
|
|
<div className="p-4">
|
|
<Button
|
|
onClick={onConfirm}
|
|
className="w-full h-12 bg-gray-800 hover:bg-gray-900 text-white rounded-lg text-base font-medium"
|
|
>
|
|
확인
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
);
|
|
} |