This commit is contained in:
legop3
2025-11-15 21:30:18 -05:00
parent 6b52c84b86
commit 392e2f661b
21 changed files with 782 additions and 203 deletions
+19
View File
@@ -0,0 +1,19 @@
import { createContext, useContext } from 'react';
import { useDriveControls as useDriveControlsHook } from '../hooks/useDriveControls.js';
/* eslint-disable react-refresh/only-export-components */
const DriveControlContext = createContext(null);
export function DriveControlProvider({ children }) {
const controls = useDriveControlsHook();
return <DriveControlContext.Provider value={controls}>{children}</DriveControlContext.Provider>;
}
export function useDriveControl() {
const context = useContext(DriveControlContext);
if (!context) {
throw new Error('useDriveControl must be used within DriveControlProvider');
}
return context;
}
+9 -1
View File
@@ -1,3 +1,5 @@
/* eslint-disable react-refresh/only-export-components */
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
import { useSocket } from './SocketContext.jsx';
@@ -61,7 +63,13 @@ export function SessionProvider({ children }) {
socket.on('log:init', handleLogInit);
socket.on('log:entry', handleLogEntry);
socket.on('alert:new', (payload = {}) => {
setAlerts((prev) => [...prev.slice(-49), payload]);
setAlerts((prev) => [
...prev.slice(-49),
{
...payload,
receivedAt: Date.now(),
},
]);
});
return () => {
socket.off('session:sync', handleSession);
+2
View File
@@ -1,3 +1,5 @@
/* eslint-disable react-refresh/only-export-components */
// src/context/SocketContext.jsx
import { createContext, useContext } from "react";
import { socket } from "../lib/socket";
+2
View File
@@ -1,3 +1,5 @@
/* eslint-disable react-refresh/only-export-components */
import { createContext, useContext, useMemo, useState, useEffect } from 'react';
import { useSocket } from './SocketContext.jsx';