feat: Show message when global settings are disabled

This commit is contained in:
Myzel394 2023-02-16 22:21:38 +01:00
parent a367e93c55
commit 9c85cc13ac

View File

@ -8,21 +8,32 @@ import {AdminSettings} from "~/server-types"
import {getAdminSettings} from "~/apis" import {getAdminSettings} from "~/apis"
import {QueryResult} from "~/components" import {QueryResult} from "~/components"
import {DEFAULT_ADMIN_SETTINGS} from "~/constants/admin-settings" import {DEFAULT_ADMIN_SETTINGS} from "~/constants/admin-settings"
import SettingsDisabled from "~/route-widgets/GlobalSettingsRoute/SettingsDisabled"
import SettingsForm from "~/route-widgets/GlobalSettingsRoute/SettingsForm" import SettingsForm from "~/route-widgets/GlobalSettingsRoute/SettingsForm"
export default function GlobalSettingsRoute(): ReactElement { export default function GlobalSettingsRoute(): ReactElement {
const queryKey = ["get_admin_settings"] const queryKey = ["get_admin_settings"]
const query = useQuery<AdminSettings, AxiosError>(queryKey, async () => { const query = useQuery<AdminSettings | null, AxiosError>(queryKey, async () => {
const settings = await getAdminSettings() const {code, detail, ...settings} = await getAdminSettings()
if (code === "error:settings:global_settings_disabled") {
return null
} else {
return _.mergeWith({}, DEFAULT_ADMIN_SETTINGS, settings, (o, s) => return _.mergeWith({}, DEFAULT_ADMIN_SETTINGS, settings, (o, s) =>
_.isNull(s) ? o : s, _.isNull(s) ? o : s,
) as AdminSettings ) as AdminSettings
}
}) })
return ( return (
<QueryResult<AdminSettings> query={query}> <QueryResult<AdminSettings | null> query={query}>
{settings => <SettingsForm settings={settings} queryKey={queryKey} />} {settings =>
settings === null ? (
<SettingsDisabled />
) : (
<SettingsForm settings={settings} queryKey={queryKey} />
)
}
</QueryResult> </QueryResult>
) )
} }