From 8f925072ccd1e3aed4bd3378b71720c2dd93d8e5 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Fri, 10 Feb 2023 20:17:12 +0100 Subject: [PATCH] fix: Fix default settings loaded correctly for global settings form --- src/constants/admin-settings.ts | 14 ++++++++++++++ src/routes/GlobalSettingsRoute.tsx | 20 ++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 src/constants/admin-settings.ts diff --git a/src/constants/admin-settings.ts b/src/constants/admin-settings.ts new file mode 100644 index 0000000..5d340a0 --- /dev/null +++ b/src/constants/admin-settings.ts @@ -0,0 +1,14 @@ +import {AdminSettings} from "~/server-types" + +export const DEFAULT_ADMIN_SETTINGS: AdminSettings = { + randomEmailIdMinLength: 6, + randomEmailIdChars: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", + randomEmailLengthIncreaseOnPercentage: 0.0005, + customEmailSuffixLength: 4, + customEmailSuffixChars: "0123456789", + userEmailEnableOtherRelays: true, + userEmailEnableDisposableEmails: false, + imageProxyStorageLifeTimeInHours: 24, + enableImageProxy: true, + allowStatistics: true, +} diff --git a/src/routes/GlobalSettingsRoute.tsx b/src/routes/GlobalSettingsRoute.tsx index 84b5e57..5387e25 100644 --- a/src/routes/GlobalSettingsRoute.tsx +++ b/src/routes/GlobalSettingsRoute.tsx @@ -1,15 +1,23 @@ import {ReactElement} from "react" -import {useQuery} from "@tanstack/react-query" -import {AdminSettings} from "~/server-types" import {AxiosError} from "axios" +import _ from "lodash" + +import {useQuery} from "@tanstack/react-query" + +import {AdminSettings} from "~/server-types" import {getAdminSettings} from "~/apis" import {QueryResult} from "~/components" -import {useTranslation} from "react-i18next" -import SettingsForm from "~/route-widgets/GlobalSettingsRoute/SettingForm" +import {DEFAULT_ADMIN_SETTINGS} from "~/constants/admin-settings" +import SettingsForm from "~/route-widgets/GlobalSettingsRoute/SettingsForm" export default function GlobalSettingsRoute(): ReactElement { - const {t} = useTranslation() - const query = useQuery(["get_admin_settings"], getAdminSettings) + const query = useQuery(["get_admin_settings"], async () => { + const settings = getAdminSettings() + + return _.mergeWith({}, DEFAULT_ADMIN_SETTINGS, settings, (o, s) => + _.isNull(s) ? o : s, + ) as AdminSettings + }) return ( query={query}>