'use client' import React from 'react' import { useForm } from '@/app/hooks/useForm' import Button from '@/components/ui/Button' import showToast from '@/components/ui/Toast' import useUserStore from '@/app/store/userStore' import TextInput from '@/components/ui/TextInput' import PhoneInput from '@/components/ui/PhoneInput' const validationRules = { firstName: { required: true }, lastName: { required: false }, phone_number: { required: true }, email: { required: true }, country: { required: false }, city: { required: false }, } const AccountPage = () => { const { user, setUser } = useUserStore() const { values, handleChange, handleSubmit } = useForm( { firstName: user?.name || '', lastName: user?.surname || '', phone_number: user?.phone_number || '', email: user?.email || '', country: user?.country || '', city: user?.city || '', }, validationRules, async values => { try { const response = await fetch('/api/account/main', { method: 'PATCH', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(values), }) if (!response.ok) { const error = await response.json() throw new Error(error.error || 'Ошибка при обновлении данных') } const result = await response.json() setUser(result.user) showToast({ type: 'success', message: 'Данные успешно обновлены!' }) } catch (error) { showToast({ type: 'error', message: error instanceof Error ? error.message : 'Ой, что то пошло не так..', }) } } ) if (!user) { return null } return (

Личные данные

) } export default AccountPage