import React, { FC, useState } from 'react'; import { useTranslation } from 'react-i18next'; import AdminCustomizeContainer from '~/client/services/AdminCustomizeContainer'; import AppContainer from '~/client/services/AppContainer'; import { toastError, toastSuccess, } from '~/client/util/apiNotification'; import ImageCropModal from '~/components/Common/ImageCropModal'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow'; type Props = { adminCustomizeContainer : AdminCustomizeContainer } const CustomizeLogoSetting: FC = (props: Props) => { const { t } = useTranslation(); const { adminCustomizeContainer } = props; const [isShow, setIsShow] = useState(false); const [src, setSrc] = useState(null); const { uploadedLogoSrc, isDefaultLogo, defaultLogoSrc, } = adminCustomizeContainer.state; const hideModal = () => { setIsShow(false); }; const cancelModal = () => { hideModal(); }; const showModal = () => { setIsShow(true); }; const onSelectFile = (e) => { if (e.target.files != null && e.target.files.length > 0) { const reader = new FileReader(); reader.addEventListener('load', () => setSrc(reader.result)); reader.readAsDataURL(e.target.files[0]); showModal(); } }; const onClickSubmit = async() => { try { await adminCustomizeContainer.updateCustomizeLogo(); toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.custom_logo') })); } catch (err) { toastError(err); } }; const onClickDeleteBtn = async() => { try { await adminCustomizeContainer.deleteLogo(); toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') })); } catch (err) { toastError(err); } }; const onCropCompleted = async(croppedImage) => { try { await adminCustomizeContainer.uploadBrandLogo(croppedImage); toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') })); } catch (err) { toastError(err); } hideModal(); }; return (

{t('admin:customize_setting.custom_logo')}

{ adminCustomizeContainer.switchDefaultLogo() }} />

{ adminCustomizeContainer.switchDefaultLogo() }} />

{(uploadedLogoSrc != null) && ( )}
); }; const CustomizeLogoSettingWrapper = withUnstatedContainers(CustomizeLogoSetting, [AppContainer, AdminCustomizeContainer]); export default CustomizeLogoSettingWrapper;