import { useEffect } from 'react'
import { useStatusBarStore, type StatusBarItem } from '../stores/statusBarStore'

/**
 * 便捷 hook — 挂载时注册一个状态栏项，卸载时自动清除。
 *
 * 适合在 App.tsx 或自定义 hook 中注册需要响应式更新的状态栏项。
 * 当 item 对象变化时（通过 deps 控制），旧项会被新项替换。
 *
 * @param item - 状态栏项（含 Component 函数组件）
 */
export function useStatusBarItem(item: StatusBarItem | null): void {
  const register = useStatusBarStore(s => s.register)
  const unregister = useStatusBarStore(s => s.unregister)

  useEffect(() => {
    if (!item) return
    register(item)
    return () => unregister(item.id)
  }, [item, register, unregister])
}
