import React, { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import AppContainer from '~/client/services/AppContainer'; import PersonalContainer from '~/client/services/PersonalContainer'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; import { localeMetadatas } from '~/client/util/i18n'; import { useSWRxPersonalSettings } from '~/stores/personal-settings'; import { withUnstatedContainers } from '../UnstatedUtils'; type Props = { appContainer: AppContainer, personalContainer: PersonalContainer, } const BasicInfoSettings = (props: Props) => { const { t } = useTranslation(); const { appContainer, personalContainer, } = props; const { data: personalSettingsInfo, mutate, error, } = useSWRxPersonalSettings(); useEffect(() => { // Mutate only when getting personal settings data from DB mutate(personalSettingsInfo); // eslint-disable-next-line react-hooks/exhaustive-deps }, [personalSettingsInfo]); const submitHandler = async() => { try { // TODO: SWRize apiv3Put /personal-setting/ -> https://redmine.weseek.co.jp/issues/98160 await personalContainer.updateBasicInfo(); toastSuccess(t('toaster.update_successed', { target: t('Basic Info') })); } catch (err) { toastError(err); } }; const { registrationWhiteList } = appContainer.getConfig(); const isLoading = personalSettingsInfo == null; if (isLoading) { return (
{data}