UNPKG

@renegade-fi/react

Version:
31 lines (24 loc) 784 B
"use client"; import { type Config, watchStatus } from "@renegade-fi/core"; import { useEffect, useState } from "react"; import { useConfig } from "./useConfig.js"; export type UseStatusParameters = { config?: Config; }; export type UseStatusReturnType = Config["state"]["status"]; export function useStatus(parameters: UseStatusParameters = {}): UseStatusReturnType { const config = useConfig(parameters); const [status, setStatus] = useState(config?.state.status); useEffect(() => { if (!config) return; const unsubscribe = watchStatus(config, { onChange: (status) => { setStatus(status); }, }); return () => { unsubscribe(); }; }, [config]); return status; }