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