/* eslint-disable @typescript-eslint/no-unsafe-argument */ /* eslint-disable @typescript-eslint/restrict-template-expressions */ import { useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' import { toast } from 'react-toastify' import { useAuth } from '#components/Auth' import { TextInput } from '#components/Input' import { MapOverlayPage } from '#components/Templates' import type { UserItem } from '#src/types/UserItem' export function UserSettings() { const { user, updateUser, loading /* token */ } = useAuth() const [id, setId] = useState('') const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [passwordChanged, setPasswordChanged] = useState(false) const navigate = useNavigate() useEffect(() => { setId(user?.id ? user.id : '') setEmail(user?.email ? user.email : '') setPassword(user?.password ? user.password : '') }, [user]) const onUpdateUser = () => { let changedUser = {} as UserItem changedUser = { id, email, ...(passwordChanged && { password }) } toast .promise(updateUser(changedUser), { pending: 'updating Profile ...', success: 'Profile updated', error: { render({ data }) { return `${data}` }, }, }) .then(() => navigate('/')) .catch((e) => { throw e }) } return (
Settings
setEmail(v)} /> { setPassword(v) setPasswordChanged(true) }} /> {/* */}
) }