fix: 修复大厅倒计时空数据覆盖问题

This commit is contained in:
2026-05-16 10:53:01 +08:00
parent 9a1dea59de
commit 500d7ec816

View File

@@ -74,6 +74,12 @@ export function useHallDrawLive(): HallDrawLiveSnapshot {
setEmittedAtMs(evt.emitted_at_ms ?? Date.now()); 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) => { const updateFromResponse = useCallback((resp: DrawCurrentResponse) => {
setServerNowMs(resp.server_now_ms); setServerNowMs(resp.server_now_ms);
setRaw(resp.data); setRaw(resp.data);
@@ -123,7 +129,7 @@ export function useHallDrawLive(): HallDrawLiveSnapshot {
const channel = echo.channel("lottery-hall"); const channel = echo.channel("lottery-hall");
// 设置事件监听 // 设置事件监听
channel.listen(".draw.countdown", mergeFromWs); channel.listen(".draw.countdown", mergeCountdownFromWs);
channel.listen(".draw.status_change", mergeFromWs); channel.listen(".draw.status_change", mergeFromWs);
channel.listen(".result.published", (evt: HallWsEnvelope) => { channel.listen(".result.published", (evt: HallWsEnvelope) => {
// 开奖结果发布时触发钱包轮询 // 开奖结果发布时触发钱包轮询
@@ -187,6 +193,7 @@ export function useHallDrawLive(): HallDrawLiveSnapshot {
} }
}; };
}, [ }, [
mergeCountdownFromWs,
mergeFromWs, mergeFromWs,
load, load,
setDrawPollingIntervalId, setDrawPollingIntervalId,