'use client'; import { updateProfile } from '@services/settings/profile' import React, { useEffect } from 'react' import { Formik, Form, Field } from 'formik' import { useLHSession } from '@components/Contexts/LHSessionContext' 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 = useLHSession() as any; const access_token = session?.data?.tokens?.access_token; 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.data.user_uuid, file, access_token) // 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.data]) return (
{session.data.user && ( { setTimeout(() => { setSubmitting(false) updateProfile(values, session.data.user.id, access_token) }, 400) }} > {({ isSubmitting }) => (
{error && (
{error}
)} {success && (
{success}
)}
{localAvatar ? ( ) : ( )}
{isLoading ? (
Uploading
) : (
)}

Recommended size 100x100

)}
)}
) } export default UserEditGeneral