diff --git a/src/i18n/locales/en/draws.json b/src/i18n/locales/en/draws.json index aa346d1..16c2704 100644 --- a/src/i18n/locales/en/draws.json +++ b/src/i18n/locales/en/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "Please enter all 23 groups of 4 digits", "draftSaved": "Draft v{{version}} saved, waiting to be published", "saveFailed": "Failed to save", + "fillRandomNumbers": "Fill randomly", "clear": "Clear", "saveDraft": "Save draft", "saving": "Saving…", diff --git a/src/i18n/locales/ne/draws.json b/src/i18n/locales/ne/draws.json index c9f0f60..5886898 100644 --- a/src/i18n/locales/ne/draws.json +++ b/src/i18n/locales/ne/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "कृपया 23 वटा 4-अङ्क समूह पूरा भर्नुहोस्", "draftSaved": "ड्राफ्ट v{{version}} सुरक्षित भयो, प्रकाशनको प्रतिक्षामा", "saveFailed": "सेभ असफल भयो", + "fillRandomNumbers": "अनियमित भर्नुहोस्", "clear": "खाली गर्नुहोस्", "saveDraft": "ड्राफ्ट सुरक्षित गर्नुहोस्", "saving": "सेभ हुँदैछ…", diff --git a/src/i18n/locales/zh/draws.json b/src/i18n/locales/zh/draws.json index 819df24..12417d6 100644 --- a/src/i18n/locales/zh/draws.json +++ b/src/i18n/locales/zh/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "请完整输入 23 组 4 位数字", "draftSaved": "已保存草稿 v{{version}},等待确认发布", "saveFailed": "保存失败", + "fillRandomNumbers": "随机填满", "clear": "清空", "saveDraft": "保存草稿", "saving": "保存中…", diff --git a/src/modules/draws/draw-review-console.tsx b/src/modules/draws/draw-review-console.tsx index 9321447..558043b 100644 --- a/src/modules/draws/draw-review-console.tsx +++ b/src/modules/draws/draw-review-console.tsx @@ -1,6 +1,6 @@ "use client"; -import { Rocket } from "lucide-react"; +import { Dices, Rocket } from "lucide-react"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; @@ -46,6 +46,10 @@ const RESULT_SLOTS = [ })), ] as const; +function randomDrawNumber4d(): string { + return String(Math.floor(Math.random() * 10_000)).padStart(4, "0"); +} + export function DrawReviewConsole({ drawId }: { drawId: string }) { const { t } = useTranslation(["draws", "common"]); const profile = useAdminProfile(); @@ -91,6 +95,10 @@ export function DrawReviewConsole({ drawId }: { drawId: string }) { data, ]); + function fillRandomManualNumbers(): void { + setManualNumbers(RESULT_SLOTS.map(() => randomDrawNumber4d())); + } + async function saveManualDraft(): Promise { if (!Number.isFinite(idNum)) return; const invalid = manualNumbers.some((n) => !/^[0-9]{4}$/.test(n)); @@ -163,6 +171,15 @@ export function DrawReviewConsole({ drawId }: { drawId: string }) { ))}
+