import type { FC } from 'react' import { useEffect, useState } from 'react' import { Helmet } from 'react-helmet-async' import Form from '@/components/common/Form' import Label from '@/components/common/Label' import PageTitle from '@/components/common/PageTitle' import MainArea from '@/components/layout/MainArea' import InheritDialogue from '@/components/users/InheritDialogue' import UserCodeDialogue from '@/components/users/UserCodeDialogue' import { Button } from '@/components/ui/button' import { toast } from '@/components/ui/use-toast' import { SITE_TITLE } from '@/config' import { apiPut } from '@/lib/api' import type { User } from '@/types' type Props = { user: User | null setUser: React.Dispatch> } const SettingPage: FC = ({ user, setUser }) => { const [name, setName] = useState ('') const [userCodeVsbl, setUserCodeVsbl] = useState (false) const [inheritVsbl, setInheritVsbl] = useState (false) const handleSubmit = async () => { if (!(user)) return const formData = new FormData formData.append ('name', name) try { const data = await apiPut ( `/users/${ user.id }`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }) setUser (user => ({ ...user, ...data })) toast ({ title: '設定を更新しました.' }) } catch { toast ({ title: 'しっぱい……' }) } } useEffect (() => { if (!user) return setName (user.name ?? '') }, [user]) return ( 設定 | {SITE_TITLE}
設定 {user ? ( <> {/* 名前 */}
setName (ev.target.value)}/> {(user && !(user.name)) && (

名前が未設定のアカウントは 30 日間アクセスしないと削除されます!!!!

)}
{/* 送信 */} {/* 引継ぎ */}
) : 'Loading...'}
) } export default SettingPage