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());
}, []);
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,