| 24 | // call (400 ms window) to prevent redundant re-renders in the TV Guide. |
| 25 | let _recordingFetchTimer = null; |
| 26 | function scheduleRecordingFetch() { |
| 27 | if (_recordingFetchTimer) clearTimeout(_recordingFetchTimer); |
| 28 | _recordingFetchTimer = setTimeout(async () => { |
| 29 | _recordingFetchTimer = null; |
| 30 | try { |
| 31 | await useChannelsStore.getState().fetchRecordings(); |
| 32 | } catch (e) { |
| 33 | console.warn('Failed to refresh recordings:', e); |
| 34 | } |
| 35 | }, 400); |
| 36 | } |
| 37 | |
| 38 | export const WebsocketProvider = ({ children }) => { |
| 39 | const [isReady, setIsReady] = useState(false); |