import {Dialog} from '@common/ui/overlays/dialog/dialog'; import {DialogHeader} from '@common/ui/overlays/dialog/dialog-header'; import {Trans} from '@common/i18n/trans'; import {DialogBody} from '@common/ui/overlays/dialog/dialog-body'; import {DialogFooter} from '@common/ui/overlays/dialog/dialog-footer'; import {Button} from '@common/ui/buttons/button'; import {useDialogContext} from '@common/ui/overlays/dialog/dialog-context'; import {User} from '@common/auth/user'; import {Form} from '@common/ui/forms/form'; import {FormTextField} from '@common/ui/forms/input-field/text-field/text-field'; import {FormImageSelector} from '@common/ui/images/image-selector'; import {FileUploadProvider} from '@common/uploads/uploader/file-upload-provider'; import {Option} from '@common/ui/forms/combobox/combobox'; import {useValueLists} from '@common/http/value-lists'; import {useForm} from 'react-hook-form'; import {ProfileLinksForm} from '@app/profile/profile-links-form'; import { UpdateProfilePayload, useUpdateUserProfile, } from '@app/profile/requests/use-update-user-profile'; import {FormSelect} from '@common/ui/forms/select/select'; interface Props { user: User; } export function EditUserProfileDialog({user}: Props) { const {close, formId} = useDialogContext(); const {data} = useValueLists(['countries']); const form = useForm({ defaultValues: { user: { username: user.username, avatar: user.avatar, first_name: user.first_name, last_name: user.last_name, }, profile: { city: user.profile?.city, country: user.profile?.country, description: user.profile?.description, }, links: user.links, }, }); const updateProfile = useUpdateUserProfile(form); return (
updateProfile.mutate(values, {onSuccess: () => close()}) } >
} name="user.avatar" diskPrefix="avatars" variant="avatar" previewSize="w-200 h-200" className="max-md:mb-20" />
} className="mb-24" />
} className="flex-1 mb-24" /> } className="flex-1 mb-24" />
} className="flex-1 mb-24" /> } > {data?.countries?.map(country => ( ))}
} inputElementType="textarea" rows={4} />
); }