diff --git a/src/features/hall/use-hall-draw-live.ts b/src/features/hall/use-hall-draw-live.ts index cd16187..ce67482 100644 --- a/src/features/hall/use-hall-draw-live.ts +++ b/src/features/hall/use-hall-draw-live.ts @@ -74,6 +74,12 @@ export function useHallDrawLive(): HallDrawLiveSnapshot { setEmittedAtMs(evt.emitted_at_ms ?? Date.now()); }, []); + const mergeCountdownFromWs = useCallback((evt: HallWsEnvelope) => { + if (evt.data === null) return; + setRaw(evt.data); + setEmittedAtMs(evt.emitted_at_ms ?? Date.now()); + }, []); + const updateFromResponse = useCallback((resp: DrawCurrentResponse) => { setServerNowMs(resp.server_now_ms); setRaw(resp.data); @@ -123,7 +129,7 @@ export function useHallDrawLive(): HallDrawLiveSnapshot { const channel = echo.channel("lottery-hall"); // 设置事件监听 - channel.listen(".draw.countdown", mergeFromWs); + channel.listen(".draw.countdown", mergeCountdownFromWs); channel.listen(".draw.status_change", mergeFromWs); channel.listen(".result.published", (evt: HallWsEnvelope) => { // 开奖结果发布时触发钱包轮询 @@ -187,6 +193,7 @@ export function useHallDrawLive(): HallDrawLiveSnapshot { } }; }, [ + mergeCountdownFromWs, mergeFromWs, load, setDrawPollingIntervalId,