feat(i18n): add saveFailed message and dimensionRatesMixedHint to locale files

- Updated English, Nepali, and Chinese locale files to include a new message for "Failed to save configuration".
- Added a hint for mixed rebate rates within the same dimension to enhance user understanding.
- Improved internationalization support across multiple locales for better user experience in the admin interface.
This commit is contained in:
2026-05-26 11:23:36 +08:00
parent 4080f0b601
commit 7fb5ec6dff
10 changed files with 181 additions and 65 deletions

View File

@@ -41,6 +41,7 @@ import { cn } from "@/lib/utils";
import { PRD_ODDS_MANAGE, PRD_REBATE_MANAGE } from "@/lib/admin-prd";
import { useAdminProfile } from "@/stores/admin-session";
import { LotteryApiBizError } from "@/types/api/errors";
import { pickDefaultConfigVersionId } from "@/lib/config-version-auto-pick";
import type {
AdminPlayTypeRow,
ConfigVersionSummary,
@@ -168,18 +169,26 @@ export function OddsConfigDocScreen({
}, [t]);
useEffect(() => {
if (list.length === 0 || selectedId !== "") {
if (list.length === 0) {
if (selectedId !== "") {
queueMicrotask(() => {
setSelectedId("");
setDetail(null);
setDraftRows([]);
});
}
return;
}
if (selectedId !== "" && list.some((x) => String(x.id) === selectedId)) {
return;
}
queueMicrotask(() => {
const drafts = list.filter((x) => x.status === "draft").sort((a, b) => b.id - a.id);
const active = list.find((x) => x.status === "active");
const pick = drafts[0] ?? active ?? [...list].sort((a, b) => b.id - a.id)[0];
if (pick) {
setSelectedId(String(pick.id));
const pickId = pickDefaultConfigVersionId(list);
if (pickId) {
setSelectedId(pickId);
}
});
}, [list, selectedId]);
}, [list, selectedId, setSelectedId]);
useEffect(() => {
if (selectedId === "") {
@@ -292,7 +301,7 @@ export function OddsConfigDocScreen({
toast.success(t("versionActions.saveDraft", { ns: "config" }));
void refreshList();
} catch (e) {
toast.error(e instanceof LotteryApiBizError ? e.message : t("wallet.saveFailed", { ns: "config" }));
toast.error(e instanceof LotteryApiBizError ? e.message : t("versionActions.saveFailed", { ns: "config" }));
} finally {
setSaving(false);
}