import { updateProfile } from '@services/settings/profile'; import React, { useEffect } from 'react' import { Formik, Form, Field } from 'formik'; import { useSession } from '@components/Contexts/SessionContext'; import { ArrowBigUpDash, Check, FileWarning, Info, UploadCloud } from 'lucide-react'; import UserAvatar from '@components/Objects/UserAvatar'; import { updateUserAvatar } from '@services/users/users'; function UserEditGeneral() { const session = useSession() as any; const [localAvatar, setLocalAvatar] = React.useState(null) as any; const [isLoading, setIsLoading] = React.useState(false) as any; const [error, setError] = React.useState() as any; const [success, setSuccess] = React.useState('') as any; const handleFileChange = async (event: any) => { const file = event.target.files[0]; setLocalAvatar(file); setIsLoading(true); const res = await updateUserAvatar(session.user.user_uuid, file) // wait for 1 second to show loading animation await new Promise(r => setTimeout(r, 1500)); if (res.success === false) { setError(res.HTTPmessage); } else { setIsLoading(false); setError(''); setSuccess('Avatar Updated'); } }; useEffect(() => { } , [session, session.user]) return (
{session.user && ( { setTimeout(() => { setSubmitting(false); updateProfile(values, session.user.id) }, 400); }} > {({ isSubmitting }) => (
{error && (
{error}
)} {success && (
{success}
)}
{localAvatar ? ( ) : ( )}
{isLoading ? (
Uploading
) : (
)}

Recommended size 100x100

)}
)}
) } export default UserEditGeneral