import React, { useCallback } from 'react'; import { useTranslation } from 'next-i18next'; import AdminAppContainer from '~/client/services/AdminAppContainer'; import { toastSuccess, toastError } from '~/client/util/toastr'; import loggerFactory from '~/utils/logger'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow'; const logger = loggerFactory('growi:appSettings'); type Props = { adminAppContainer: AdminAppContainer, } const SiteUrlSetting = (props: Props) => { const { t } = useTranslation('admin', { keyPrefix: 'app_setting' }); const { t: tCommon } = useTranslation('commons'); const { adminAppContainer } = props; const submitHandler = useCallback(async() => { try { await adminAppContainer.updateSiteUrlSettingHandler(); toastSuccess(tCommon('toaster.update_successed', { target: t('site_url.title') })); } catch (err) { toastError(err); logger.error(err); } }, [adminAppContainer, t, tCommon]); return (

{t('site_url.desc')}

{!adminAppContainer.state.isSetSiteUrl && (

error {t('site_url.warn')}

)} { adminAppContainer.state.siteUrlUseOnlyEnvVars && (

) }
Database Environment variables
{ adminAppContainer.changeSiteUrl(e.target.value) }} placeholder="e.g. https://my.growi.org" />

{/* eslint-disable-next-line react/no-danger */}

{/* eslint-disable-next-line react/no-danger */}

); }; /** * Wrapper component for using unstated */ const SiteUrlSettingWrapper = withUnstatedContainers(SiteUrlSetting, [AdminAppContainer]); export default SiteUrlSettingWrapper;