"use client"; import { useState, useEffect } from "react"; import RandomSeed from "@/components/tools/hash-random/RandomSeed"; import ParticipantList from "@/components/tools/hash-random/ParticipantList"; import ResultDisplay from "@/components/tools/hash-random/ResultDisplay"; import HashTable from "@/components/tools/hash-random/HashTable"; import CoreAlgorithm from "@/components/tools/hash-random/CoreAlgorithm"; import { useHashCalculation } from "@/hooks/useHashCalculation"; import DarkModeToggle from "@/components/tools/hash-random/DarkModeToggle"; import SaveLoadSelection from "@/components/tools/hash-random/SaveLoadSelection"; import Footer from "@/components/tools/hash-random/Footer"; import { AnimatePresence, motion } from "framer-motion"; export default function Home() { const [salt, setSalt] = useState(""); const [count, setCount] = useState(1); const [participants, setParticipants] = useState([]); const { sortedResults, saltHash, isCalculating } = useHashCalculation( salt, participants, count ); const [darkMode, setDarkMode] = useState(false); useEffect(() => { const isDarkMode = localStorage.getItem("darkMode") === "true"; setDarkMode(isDarkMode); }, []); useEffect(() => { document.documentElement.classList.toggle("dark", darkMode); localStorage.setItem("darkMode", darkMode.toString()); }, [darkMode]); return (

哈希随机抽取

事前不可知 事后可复现 高度随机化
{isCalculating ? (
) : ( )}
); }