feat: refactor now time

This commit is contained in:
hamster1963 2024-12-31 23:45:26 +08:00
parent c5b8695a82
commit 2bc608e332

View File

@ -97,34 +97,25 @@ function Links() {
) )
} }
// https://github.com/streamich/react-use/blob/master/src/useInterval.ts
const useInterval = (callback: () => void, delay: number | null) => {
const savedCallback = useRef<() => void>(() => {})
useEffect(() => {
savedCallback.current = callback
})
useEffect(() => {
if (delay !== null) {
const interval = setInterval(() => savedCallback.current(), delay || 0)
return () => clearInterval(interval)
}
return undefined
}, [delay])
}
function Overview() { function Overview() {
const t = useTranslations("Overview") const t = useTranslations("Overview")
const [mouted, setMounted] = useState(false) const [mouted, setMounted] = useState(false)
useEffect(() => { useEffect(() => {
setMounted(true) setMounted(true)
}, []) }, [])
const timeOption = DateTime.TIME_SIMPLE const timeOption = DateTime.TIME_WITH_SECONDS
timeOption.hour12 = true timeOption.hour12 = true
const [timeString, setTimeString] = useState( const [timeString, setTimeString] = useState(
DateTime.now().setLocale("en-US").toLocaleString(timeOption), DateTime.now().setLocale("en-US").toLocaleString(timeOption),
) )
useInterval(() => { useEffect(() => {
setTimeString(DateTime.now().setLocale("en-US").toLocaleString(timeOption)) const updateTime = () => {
}, 1000) const now = DateTime.now().setLocale("en-US").toLocaleString(timeOption)
setTimeString(now)
requestAnimationFrame(updateTime)
}
requestAnimationFrame(updateTime)
}, [])
return ( return (
<section className={"mt-10 flex flex-col md:mt-16"}> <section className={"mt-10 flex flex-col md:mt-16"}>
<p className="text-base font-semibold">{t("p_2277-2331_Overview")}</p> <p className="text-base font-semibold">{t("p_2277-2331_Overview")}</p>