mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 09:31:20 -04:00
drivedock
This commit is contained in:
@@ -12,12 +12,14 @@
|
||||
- Treat `npm run build` output files committed into this repo as intentional deployment artifacts; do not discard them as noise.
|
||||
|
||||
## Server backend
|
||||
- Every service must live in its own folder, even when it remains a single-file implementation.
|
||||
- Convert every service into a folder-based structure.
|
||||
- Split very large service files into smaller focused modules.
|
||||
- Keep files concise and single-purpose.
|
||||
- Add clear title comments at top of split files.
|
||||
|
||||
## WebUI frontend
|
||||
- Every component must live in its own folder, even when it remains a single-file implementation.
|
||||
- Split large JSX/components and large backing JS files into folderized modules.
|
||||
- Keep modules clear and focused, with title comments.
|
||||
- Each component must live entirely inside its own folder; do not leave wrapper/compatibility component files outside that folder.
|
||||
@@ -61,7 +63,7 @@
|
||||
- [x] spectator app
|
||||
- [x] vip audio upload card
|
||||
- [x] admin panel
|
||||
- [ ] drive dock action
|
||||
- [x] drive dock action
|
||||
- [ ] gamepad mapping settings
|
||||
- [ ] mobile controls
|
||||
- [ ] top down map
|
||||
@@ -74,6 +76,7 @@
|
||||
- video tile
|
||||
- vip audio upload card
|
||||
- admin panel
|
||||
- drive dock action
|
||||
|
||||
### LARGE CHANGES
|
||||
- Split `webui/src/mini/MiniSummaryApp.jsx` into folderized modules under `webui/src/mini/MiniSummaryApp/` with a compatibility entrypoint preserved.
|
||||
@@ -81,6 +84,7 @@
|
||||
- Split `webui/src/components/VideoTile.jsx` by extracting HUD, overlays, chat input, and constants into `webui/src/components/VideoTile/` while preserving the existing `VideoTile.jsx` public component API.
|
||||
- Split `webui/src/components/vip/VipAudioUploadCard.jsx` by extracting transport/audio helpers and UI atoms into `webui/src/components/vip/VipAudioUploadCard/` while preserving the existing `VipAudioUploadCard.jsx` import/export API.
|
||||
- Split `webui/src/components/AdminPanel.jsx` into `webui/src/components/AdminPanel/` and extracted monitor/health/log/LLM helper modules; updated consumers to folder entrypoint and removed external wrapper file.
|
||||
- Moved `DriveDockAction` to `webui/src/components/DriveDockAction/index.jsx` and updated all consumers to folder entrypoint imports.
|
||||
|
||||
## Done criteria (per item)
|
||||
- [ ] Folderized structure created.
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useControlSystem } from '../controls/index.js';
|
||||
import { formatKeyLabel } from '../controls/keymapUtils.js';
|
||||
import TopDownMap from './TopDownMap.jsx';
|
||||
import RoverRoster from './RoverRoster.jsx';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction.jsx';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction/index.jsx';
|
||||
import NightVisionControl from './NightVisionControl.jsx';
|
||||
import HornControl from './HornControl.jsx';
|
||||
import CameraTiltControl from './CameraTiltControl.jsx';
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
import { useMemo, useState } from 'react';
|
||||
import { useControlSystem } from '../controls/index.js';
|
||||
import { useTelemetryFrame } from '../context/TelemetryContext.jsx';
|
||||
import { formatKeyLabel } from '../controls/keymapUtils.js';
|
||||
import { useControlSystem } from '../../controls/index.js';
|
||||
import { useTelemetryFrame } from '../../context/TelemetryContext.jsx';
|
||||
import { formatKeyLabel } from '../../controls/keymapUtils.js';
|
||||
|
||||
export function deriveDriveDockState(frame) {
|
||||
const sensors = frame?.sensors || {};
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { useControlSystem } from '../controls/index.js';
|
||||
import { clampUnit } from '../controls/controlMath.js';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction.jsx';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction/index.jsx';
|
||||
import NightVisionControl from './NightVisionControl.jsx';
|
||||
import HornControl from './HornControl.jsx';
|
||||
import CameraTiltControl from './CameraTiltControl.jsx';
|
||||
|
||||
@@ -7,7 +7,7 @@ import { LinkButtonsPanel, NicknameEntryPanel } from './UserListPanel.jsx';
|
||||
import ReplaySourcesPanel from './ReplaySourcesPanel.jsx';
|
||||
import Tabs, { Tab, TabList, TabPanel, TabPanels } from './Tabs.jsx';
|
||||
import TopDownMap from './TopDownMap.jsx';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction.jsx';
|
||||
import DriveDockAction, { useDriveDockState } from './DriveDockAction/index.jsx';
|
||||
import { useTelemetryFrame } from '../context/TelemetryContext.jsx';
|
||||
import { useControlSystem } from '../controls/index.js';
|
||||
import RoverQueuesPanel from './RoverQueuesPanel.jsx';
|
||||
|
||||
Reference in New Issue
Block a user