From 090295327fc18728971157d32c304bcfaea28f6c Mon Sep 17 00:00:00 2001 From: Untone Date: Thu, 29 Aug 2024 16:11:51 +0300 Subject: [PATCH] profile-settings-fix --- .../Views/Profile/ProfileSettings.tsx | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/components/Views/Profile/ProfileSettings.tsx b/src/components/Views/Profile/ProfileSettings.tsx index 034e0002..1b56844f 100644 --- a/src/components/Views/Profile/ProfileSettings.tsx +++ b/src/components/Views/Profile/ProfileSettings.tsx @@ -43,7 +43,6 @@ function filterNulls(arr: InputMaybe[]): string[] { export const ProfileSettings = () => { const { t } = useLocalize() - const [prevForm, setPrevForm] = createStore({}) const [isFormInitialized, setIsFormInitialized] = createSignal(false) const [isSaving, setIsSaving] = createSignal(false) const [social, setSocial] = createSignal([]) @@ -59,16 +58,25 @@ export const ProfileSettings = () => { const { form, submit, updateFormField, setForm } = useProfile() const { showSnackbar } = useSnackbar() const { loadSession, session } = useSession() + const [prevForm, setPrevForm] = createStore() const { showConfirm } = useUI() const [clearAbout, setClearAbout] = createSignal(false) const { showModal, hideModal } = useUI() + const [loading, setLoading] = createSignal(true); + // Используем createEffect для отслеживания данных сессии и инициализации формы createEffect(() => { - if (Object.keys(form).length > 0 && !isFormInitialized()) { - setPrevForm(form) - const soc: string[] = filterNulls(form.links || []) - setSocial(soc) - setIsFormInitialized(true) + const s = session() + if (s && !isFormInitialized()) { + const profileData = s?.user?.app_data?.profile + if (profileData) { + setPrevForm(profileData) + const soc: string[] = filterNulls(profileData.links || []) + setSocial(soc); + setForm(profileData) // Инициализируем форму с данными профиля + setIsFormInitialized(true) + } + setLoading(false) // Отключаем загрузку только после инициализации данных } }) @@ -197,7 +205,7 @@ export const ProfileSettings = () => { } return ( - 0 && isFormInitialized()} fallback={}> + 0 && isFormInitialized() && !loading()} fallback={}> <>