/opt/canhelp/apps/web/src/app/delete-account
Edit: /opt/canhelp/apps/web/src/app/delete-account/page.tsx (5387B)
'use client'
import { useState } from 'react'
import Link from 'next/link'
import { useLocale } from '@/context/locale'
import { useSession } from '@/lib/auth'
import { createSupportTicket } from '@/lib/api'
export default function DeleteAccountPage() {
const { t } = useLocale()
const { data: session } = useSession()
const [reason, setReason] = useState('')
const [confirmed, setConfirmed] = useState(false)
const [submitting, setSubmitting] = useState(false)
const [done, setDone] = useState(false)
const [error, setError] = useState
(null)
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault()
if (!confirmed || submitting) return
setSubmitting(true)
setError(null)
try {
await createSupportTicket({
type: 'delete_account',
subject: 'Account deletion request',
body: reason.trim() || 'No reason provided.',
})
setDone(true)
} catch (err: any) {
setError(err?.message ?? 'Error')
} finally {
setSubmitting(false)
}
}
return (
← {t('nav.home')}
{t('delete_account.title')}
{t('delete_account.subtitle')}
{done ? (
{t('delete_account.success_title')}
{t('delete_account.success_body')}
) : !session?.user ? (
{t('delete_account.login_required')}
{t('delete_account.login_btn')}
) : (
)}
)
}