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