123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use client'
- import { useTranslation } from 'react-i18next'
- import { useCallback, useState } from 'react'
- import CheckEmail from './components/check-email'
- import VerifyEmail from './components/verify-email'
- import FeedBack from './components/feed-back'
- import CustomDialog from '@/app/components/base/dialog'
- import { COUNT_DOWN_KEY, COUNT_DOWN_TIME_MS } from '@/app/components/signin/countdown'
- type DeleteAccountProps = {
- onCancel: () => void
- onConfirm: () => void
- }
- export default function DeleteAccount(props: DeleteAccountProps) {
- const { t } = useTranslation()
- const [showVerifyEmail, setShowVerifyEmail] = useState(false)
- const [showFeedbackDialog, setShowFeedbackDialog] = useState(false)
- const handleEmailCheckSuccess = useCallback(async () => {
- try {
- setShowVerifyEmail(true)
- localStorage.setItem(COUNT_DOWN_KEY, `${COUNT_DOWN_TIME_MS}`)
- }
- catch (error) { console.error(error) }
- }, [])
- if (showFeedbackDialog)
- return <FeedBack onCancel={props.onCancel} onConfirm={props.onConfirm} />
- return <CustomDialog
- show={true}
- onClose={props.onCancel}
- title={t('common.account.delete')}
- className="max-w-[480px]"
- footer={false}
- >
- {!showVerifyEmail && <CheckEmail onCancel={props.onCancel} onConfirm={handleEmailCheckSuccess} />}
- {showVerifyEmail && <VerifyEmail onCancel={props.onCancel} onConfirm={() => {
- setShowFeedbackDialog(true)
- }} />}
- </CustomDialog>
- }
|