"use client"

import { useEffect, useState } from "react"

/**
 * 返回当前时间，按指定间隔自动更新。
 *
 * SSR 安全：首次渲染返回 `initial`（默认 `new Date()`），挂载后开始定时更新。
 * 用于需要随时间刷新的 UI（如"进行中"徽章），避免 useMemo 依赖 `[items]` 导致过时。
 *
 * @param intervalMs 更新间隔（毫秒），默认 60000（1 分钟）
 */
export function useCurrentTime(intervalMs = 60000): Date {
  const [now, setNow] = useState(() => new Date())

  useEffect(() => {
    const id = setInterval(() => setNow(new Date()), intervalMs)
    return () => clearInterval(id)
  }, [intervalMs])

  return now
}
