import axios from 'axios' 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 { API_BASE_URL, SITE_TITLE } from '@/config' import type { User } from '@/types' type Props = { user: User | null setUser: React.Dispatch> } export default ({ user, setUser }: Props) => { 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 res = await axios.put (`${ API_BASE_URL }/users/${ user.id }`, formData, { headers: { 'Content-Type': 'multipart/form-data', 'X-Transfer-Code': localStorage.getItem ('user_code') || '' } }) const data = res.data as User 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...'}
) }