fix: 修复大厅倒计时空数据覆盖问题
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user