From d67b9ff4d242a663cb63da2cf40a92dd41005ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=93=E9=BC=A0?= <71394853+hamster1963@users.noreply.github.com> Date: Sat, 14 Dec 2024 10:16:33 +0800 Subject: [PATCH] fix: Duplicate template options (#51) * fix: Duplicate template options * fix: form option i18n text --- src/components/alert-rule.tsx | 12 +++-- src/components/cron.tsx | 4 +- src/components/service.tsx | 2 +- src/routes/alert-rule.tsx | 2 +- src/routes/cron.tsx | 2 +- src/routes/settings.tsx | 88 +---------------------------------- src/routes/waf.tsx | 4 +- src/types/alert-rule.ts | 10 ++-- src/types/cron.ts | 20 ++++---- src/types/service.ts | 10 ++-- src/types/settings.ts | 20 ++++---- 11 files changed, 46 insertions(+), 128 deletions(-) diff --git a/src/components/alert-rule.tsx b/src/components/alert-rule.tsx index edf487b..68e810f 100644 --- a/src/components/alert-rule.tsx +++ b/src/components/alert-rule.tsx @@ -205,11 +205,13 @@ export const AlertRuleCard: React.FC = ({ data, mutate }) => - {Object.entries(triggerModes).map(([k, v]) => ( - - {v} - - ))} + {Object.entries(triggerModes(t)).map( + ([k, v]) => ( + + {v} + + ), + )} diff --git a/src/components/cron.tsx b/src/components/cron.tsx index 151c244..86b5e7a 100644 --- a/src/components/cron.tsx +++ b/src/components/cron.tsx @@ -143,7 +143,7 @@ export const CronCard: React.FC = ({ data, mutate }) => { - {Object.entries(cronTypes).map(([k, v]) => ( + {Object.entries(cronTypes(t)).map(([k, v]) => ( {v} @@ -199,7 +199,7 @@ export const CronCard: React.FC = ({ data, mutate }) => { - {Object.entries(cronCoverageTypes).map( + {Object.entries(cronCoverageTypes(t)).map( ([k, v]) => ( {v} diff --git a/src/components/service.tsx b/src/components/service.tsx index 08010ac..d4e4adb 100644 --- a/src/components/service.tsx +++ b/src/components/service.tsx @@ -247,7 +247,7 @@ export const ServiceCard: React.FC = ({ data, mutate }) => { - {Object.entries(serviceCoverageTypes).map( + {Object.entries(serviceCoverageTypes(t)).map( ([k, v]) => ( {v} diff --git a/src/routes/alert-rule.tsx b/src/routes/alert-rule.tsx index e385ed4..be1011b 100644 --- a/src/routes/alert-rule.tsx +++ b/src/routes/alert-rule.tsx @@ -81,7 +81,7 @@ export default function AlertRulePage() { { header: t("TriggerMode"), accessorKey: "trigger Mode", - accessorFn: (row) => triggerModes[row.trigger_mode] || "", + accessorFn: (row) => triggerModes(t)[row.trigger_mode] || "", }, { header: t("Rules"), diff --git a/src/routes/cron.tsx b/src/routes/cron.tsx index 3b55820..4dbe598 100644 --- a/src/routes/cron.tsx +++ b/src/routes/cron.tsx @@ -74,7 +74,7 @@ export default function CronPage() { { header: t("Type"), accessorKey: "taskType", - accessorFn: (row) => cronTypes[row.task_type] || "", + accessorFn: (row) => cronTypes(t)[row.task_type] || "", }, { header: t("CronExpression"), diff --git a/src/routes/settings.tsx b/src/routes/settings.tsx index 928f23e..784993c 100644 --- a/src/routes/settings.tsx +++ b/src/routes/settings.tsx @@ -248,92 +248,6 @@ export default function SettingsPage() { )} /> - ( - - {t("Theme")} - - - - - {!config?.frontend_templates?.find( - (t) => t.path === field.value, - )?.is_official && ( -
-
- {t("CommunityThemeWarning")} -
-
- {t("CommunityThemeDescription")} -
-
- )} -
- )} - /> {Object.entries( - settingCoverageTypes, + settingCoverageTypes(t), ).map(([k, v]) => ( {v} diff --git a/src/routes/waf.tsx b/src/routes/waf.tsx index b236ac3..da69882 100644 --- a/src/routes/waf.tsx +++ b/src/routes/waf.tsx @@ -69,7 +69,9 @@ export default function WAFPage() { header: t("LastBlockReason"), accessorKey: "lastBlockReason", accessorFn: (row) => row.last_block_reason, - cell: ({ row }) => {wafBlockReasons[row.original.last_block_reason] || ""}, + cell: ({ row }) => ( + {wafBlockReasons(t)[row.original.last_block_reason] || ""} + ), }, { header: t("LastBlockTime"), diff --git a/src/types/alert-rule.ts b/src/types/alert-rule.ts index b5d7406..fde8293 100644 --- a/src/types/alert-rule.ts +++ b/src/types/alert-rule.ts @@ -1,6 +1,6 @@ -import i18next from "i18next" +import { TFunction } from "i18next" -export const triggerModes: Record = { - 0: i18next.t("Always"), - 1: i18next.t("Once"), -} +export const triggerModes = (t: TFunction<"translation", undefined>) => ({ + 0: t("Always"), + 1: t("Once"), +}) diff --git a/src/types/cron.ts b/src/types/cron.ts index dc371a6..93bb836 100644 --- a/src/types/cron.ts +++ b/src/types/cron.ts @@ -1,12 +1,12 @@ -import i18next from "i18next" +import { TFunction } from "i18next" -export const cronTypes: Record = { - 0: i18next.t("Scheduled"), - 1: i18next.t("Trigger"), -} +export const cronTypes = (t: TFunction<"translation", undefined>) => ({ + 0: t("Scheduled"), + 1: t("Trigger"), +}) -export const cronCoverageTypes: Record = { - 0: i18next.t("Coverages.Only"), - 1: i18next.t("Coverages.Excludes"), - 2: i18next.t("Coverages.Alarmed"), -} +export const cronCoverageTypes = (t: TFunction<"translation", undefined>) => ({ + 0: t("Coverages.Only"), + 1: t("Coverages.Excludes"), + 2: t("Coverages.Alarmed"), +}) diff --git a/src/types/service.ts b/src/types/service.ts index e1f3262..d0a65ee 100644 --- a/src/types/service.ts +++ b/src/types/service.ts @@ -1,4 +1,4 @@ -import i18next from "i18next" +import { TFunction } from "i18next" export const serviceTypes: Record = { 1: "HTTP GET", @@ -6,7 +6,7 @@ export const serviceTypes: Record = { 3: "TCPing", } -export const serviceCoverageTypes: Record = { - 0: i18next.t("Coverages.Excludes"), - 1: i18next.t("Coverages.Only"), -} +export const serviceCoverageTypes = (t: TFunction<"translation", undefined>) => ({ + 0: t("Coverages.Excludes"), + 1: t("Coverages.Only"), +}) diff --git a/src/types/settings.ts b/src/types/settings.ts index 6b025b8..30fe2bd 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -1,9 +1,9 @@ -import i18next from "i18next" +import { TFunction } from "i18next" -export const settingCoverageTypes: Record = { - 1: i18next.t("Coverages.Excludes"), - 2: i18next.t("Coverages.Only"), -} +export const settingCoverageTypes = (t: TFunction<"translation", undefined>) => ({ + 1: t("Coverages.Excludes"), + 2: t("Coverages.Only"), +}) export const nezhaLang: Record = { "zh-CN": "简体中文(中国大陆)", @@ -11,8 +11,8 @@ export const nezhaLang: Record = { "en-US": "English", } -export const wafBlockReasons: Record = { - 1: i18next.t("LoginFailed"), - 2: i18next.t("BruteForceAttackingToken"), - 3: i18next.t("BruteForceAttackingAgentSecret"), -} +export const wafBlockReasons = (t: TFunction<"translation", undefined>) => ({ + 1: t("LoginFailed"), + 2: t("BruteForceAttackingToken"), + 3: t("BruteForceAttackingAgentSecret"), +})