fix: 更新数据面板的驱动方式

This commit is contained in:
Daniel
2026-03-02 23:21:07 +08:00
parent ef60f18cb0
commit 92914e6522
22 changed files with 427 additions and 62 deletions

View File

@@ -3,6 +3,7 @@ import type { MilitarySituation } from '@/data/mockData'
import { INITIAL_MOCK_DATA } from '@/data/mockData'
import { fetchSituation } from '@/api/situation'
import { connectSituationWebSocket } from '@/api/websocket'
import { useStatsStore } from './statsStore'
interface SituationState {
situation: MilitarySituation
@@ -60,9 +61,11 @@ function pollSituation() {
export function startSituationWebSocket(): () => void {
useSituationStore.getState().setLastError(null)
disconnectWs = connectSituationWebSocket((data) => {
disconnectWs = connectSituationWebSocket((payload) => {
const { situation, stats } = payload as { situation?: MilitarySituation; stats?: { viewers?: number; cumulative?: number; feedbackCount?: number; shareCount?: number } }
useSituationStore.getState().setConnected(true)
useSituationStore.getState().setSituation(data as MilitarySituation)
if (situation) useSituationStore.getState().setSituation(situation)
if (stats) useStatsStore.getState().setStats(stats)
})
pollSituation()