@@ -7,9 +7,10 @@ import type {
77 FromWorkerMessage ,
88 HistoryArrayKey ,
99 KeyedValuesWithHistory ,
10+ LiveShredsItem ,
1011 WsEntity ,
1112} from "./worker/types" ;
12- import { isEmaObjectKey } from "./worker/types" ;
13+ import { isEmaObjectKey , liveShredsKey } from "./worker/types" ;
1314import { DateTime } from "luxon" ;
1415import { useInterval } from "react-use" ;
1516import { useThrottledCallback , useDebouncedCallback } from "use-debounce" ;
@@ -36,7 +37,7 @@ import {
3637 deleteSupermajorityDeltaEntriesAtom ,
3738 resetSupermajorityAtom ,
3839} from "../atoms" ;
39- import { shredsAtoms } from "../features/Overview/ShredsProgression/atoms" ;
40+ import { liveShredsDataAtom } from "../features/Overview/ShredsProgression/atoms" ;
4041import { rateLiveWaterfallAtom } from "../features/Overview/SlotPerformance/atoms" ;
4142import {
4243 addTurbineSlotsAtom ,
@@ -118,12 +119,11 @@ import type {
118119 PeerRemove ,
119120} from "./types" ;
120121import { SocketState } from "./ws/types" ;
121- import { xRangeMs } from "../features/Overview/ShredsProgression/const " ;
122+ import { useServerMessages } from "./ws/utils " ;
122123import {
123- bootProgressPhaseAtom ,
124124 showStartupProgressAtom ,
125+ bootProgressPhaseAtom ,
125126} from "../features/StartupProgress/atoms" ;
126- import { useServerMessages } from "./ws/utils" ;
127127
128128export function useSetAtomWsData ( ) {
129129 const setSocketState = useSetAtom ( socketStateAtom ) ;
@@ -169,6 +169,18 @@ export function useSetAtomWsData() {
169169 [ setTileTimerHistory ] ,
170170 ) ;
171171
172+ const setLiveShreds = useSetAtom ( liveShredsDataAtom ) ;
173+ const updateLiveShredsObject = useCallback (
174+ ( { key, data } : LiveShredsItem ) => {
175+ switch ( key ) {
176+ case liveShredsKey :
177+ setLiveShreds ( data ) ;
178+ break ;
179+ }
180+ } ,
181+ [ setLiveShreds ] ,
182+ ) ;
183+
172184 const onMessage = useCallback (
173185 ( msg : FromWorkerMessage ) => {
174186 switch ( msg . type ) {
@@ -207,6 +219,11 @@ export function useSetAtomWsData() {
207219 updateEmaHistoryObject ( item ) ;
208220 }
209221 break ;
222+ case "liveShredsObject" :
223+ for ( const item of msg . items ) {
224+ updateLiveShredsObject ( item ) ;
225+ }
226+ break ;
210227 }
211228 } ,
212229 [
@@ -215,6 +232,7 @@ export function useSetAtomWsData() {
215232 updateEmaHistoryArray ,
216233 updateHistoryArray ,
217234 updateEmaHistoryObject ,
235+ updateLiveShredsObject ,
218236 ] ,
219237 ) ;
220238
@@ -430,8 +448,6 @@ function useUpdateAtoms() {
430448 ) ;
431449 const setSlotCaughtUp = useSetAtom ( slotCaughtUpAtom ) ;
432450
433- const addLiveShreds = useSetAtom ( shredsAtoms . addShredEvents ) ;
434-
435451 const setLiveProgramCache = useSetAtom ( liveProgramCacheAtom ) ;
436452
437453 const peersBuffer = useRef ( new Map < string , Peer > ( ) ) ;
@@ -717,7 +733,7 @@ function useUpdateAtoms() {
717733 break ;
718734 }
719735 case "live_shreds" : {
720- addLiveShreds ( value ) ;
736+ // processed by web worker
721737 break ;
722738 }
723739 case "late_votes_history" : {
@@ -755,7 +771,6 @@ function useUpdateAtoms() {
755771 }
756772 } ,
757773 [
758- addLiveShreds ,
759774 addRepairSlot ,
760775 addRepairSlots ,
761776 addSkippedClusterSlots ,
@@ -847,14 +862,6 @@ function useUpdateAtoms() {
847862 const isSocketDisconnected =
848863 useAtomValue ( socketStateAtom ) === SocketState . Disconnected ;
849864
850- const deleteLiveShreds = useSetAtom ( shredsAtoms . deleteSlots ) ;
851-
852- useEffect ( ( ) => {
853- if ( isSocketDisconnected ) {
854- deleteLiveShreds ( isSocketDisconnected , isStartup ) ;
855- }
856- } , [ deleteLiveShreds , isSocketDisconnected , isStartup ] ) ;
857-
858865 const resetTurbineSlots = useSetAtom ( resetTurbineSlotsAtom ) ;
859866 const resetRepairSlots = useSetAtom ( resetRepairSlotsAtom ) ;
860867 useEffect ( ( ) => {
@@ -864,13 +871,6 @@ function useUpdateAtoms() {
864871 }
865872 } , [ isStartup , resetRepairSlots , resetTurbineSlots ] ) ;
866873
867- useInterval (
868- ( ) => {
869- deleteLiveShreds ( isSocketDisconnected , isStartup ) ;
870- } ,
871- isStartup ? 1_000 : xRangeMs / 4 ,
872- ) ;
873-
874874 const deleteSupermajorityDeltaEntries = useSetAtom (
875875 deleteSupermajorityDeltaEntriesAtom ,
876876 ) ;
0 commit comments