diff --git a/app/registeragreement/page.tsx b/app/registeragreement/page.tsx new file mode 100644 index 0000000..b83fc1a --- /dev/null +++ b/app/registeragreement/page.tsx @@ -0,0 +1,171 @@ +'use client'; + +import { useState } from 'react'; +import Link from 'next/link'; + +export default function RegisterAgreementPage() { + const [allAgreed, setAllAgreed] = useState(false); + const [ageAgreed, setAgeAgreed] = useState(false); + const [termsAgreed, setTermsAgreed] = useState(false); + const [privacyAgreed, setPrivacyAgreed] = useState(false); + + // 전체 동의 핸들러 + const handleAllAgreed = (checked: boolean) => { + setAllAgreed(checked); + setAgeAgreed(checked); + setTermsAgreed(checked); + setPrivacyAgreed(checked); + }; + + // 개별 체크박스 변경 시 전체 동의 상태 업데이트 + const updateAllAgreed = () => { + if (ageAgreed && termsAgreed && privacyAgreed) { + setAllAgreed(true); + } else { + setAllAgreed(false); + } + }; + + // 개별 체크박스 핸들러 + const handleAgeAgreed = (checked: boolean) => { + setAgeAgreed(checked); + updateAllAgreed(); + }; + + const handleTermsAgreed = (checked: boolean) => { + setTermsAgreed(checked); + updateAllAgreed(); + }; + + const handlePrivacyAgreed = (checked: boolean) => { + setPrivacyAgreed(checked); + updateAllAgreed(); + }; + + // 다음 단계 진행 가능 여부 + const canProceed = ageAgreed && termsAgreed && privacyAgreed; + + return ( +