import * as React from 'react'; import { useForm, SubmitHandler } from 'react-hook-form'; import I18n from 'i18n-js'; import Box from '../../common/Box'; import SiteSettingsInfoBox from '../../common/SiteSettingsInfoBox'; import Button from '../../common/Button'; import HttpStatus from '../../../constants/http_status'; import { TENANT_BRAND_NAME_AND_LOGO, TENANT_BRAND_NAME_ONLY, TENANT_BRAND_LOGO_ONLY, TENANT_BRAND_NONE, } from '../../../interfaces/ITenant'; import { DangerText } from '../../common/CustomTexts'; import { getLabel, getValidationMessage } from '../../../helpers/formUtils'; export interface ISiteSettingsGeneralForm { siteName: string; siteLogo: string; brandDisplaySetting: string; locale: string; } interface Props { originForm: ISiteSettingsGeneralForm; authenticityToken: string; areUpdating: boolean; error: string; updateTenant( siteName: string, siteLogo: string, brandDisplaySetting: string, locale: string, authenticityToken: string ): Promise; } const GeneralSiteSettingsP = ({ originForm, authenticityToken, areUpdating, error, updateTenant, }: Props) => { const { register, handleSubmit, formState: { isDirty, isSubmitSuccessful, errors } } = useForm({ defaultValues: { siteName: originForm.siteName, siteLogo: originForm.siteLogo, brandDisplaySetting: originForm.brandDisplaySetting, locale: originForm.locale, }, }); const onSubmit: SubmitHandler = data => { updateTenant( data.siteName, data.siteLogo, data.brandDisplaySetting, data.locale, authenticityToken, ).then(res => { if (res?.status !== HttpStatus.OK) return; window.location.reload(); }); }; return ( <>

{ I18n.t('site_settings.general.title') }

{errors.siteName && getValidationMessage(errors.siteName.type, 'tenant', 'site_name')}

); } export default GeneralSiteSettingsP;