mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-16 01:21: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.
|
- Treat `npm run build` output files committed into this repo as intentional deployment artifacts; do not discard them as noise.
|
||||||
|
|
||||||
## Server backend
|
## 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.
|
- Convert every service into a folder-based structure.
|
||||||
- Split very large service files into smaller focused modules.
|
- Split very large service files into smaller focused modules.
|
||||||
- Keep files concise and single-purpose.
|
- Keep files concise and single-purpose.
|
||||||
- Add clear title comments at top of split files.
|
- Add clear title comments at top of split files.
|
||||||
|
|
||||||
## WebUI frontend
|
## 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.
|
- Split large JSX/components and large backing JS files into folderized modules.
|
||||||
- Keep modules clear and focused, with title comments.
|
- 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.
|
- 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] spectator app
|
||||||
- [x] vip audio upload card
|
- [x] vip audio upload card
|
||||||
- [x] admin panel
|
- [x] admin panel
|
||||||
- [ ] drive dock action
|
- [x] drive dock action
|
||||||
- [ ] gamepad mapping settings
|
- [ ] gamepad mapping settings
|
||||||
- [ ] mobile controls
|
- [ ] mobile controls
|
||||||
- [ ] top down map
|
- [ ] top down map
|
||||||
@@ -74,6 +76,7 @@
|
|||||||
- video tile
|
- video tile
|
||||||
- vip audio upload card
|
- vip audio upload card
|
||||||
- admin panel
|
- admin panel
|
||||||
|
- drive dock action
|
||||||
|
|
||||||
### LARGE CHANGES
|
### LARGE CHANGES
|
||||||
- Split `webui/src/mini/MiniSummaryApp.jsx` into folderized modules under `webui/src/mini/MiniSummaryApp/` with a compatibility entrypoint preserved.
|
- 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/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/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.
|
- 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)
|
## Done criteria (per item)
|
||||||
- [ ] Folderized structure created.
|
- [ ] Folderized structure created.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { useControlSystem } from '../controls/index.js';
|
|||||||
import { formatKeyLabel } from '../controls/keymapUtils.js';
|
import { formatKeyLabel } from '../controls/keymapUtils.js';
|
||||||
import TopDownMap from './TopDownMap.jsx';
|
import TopDownMap from './TopDownMap.jsx';
|
||||||
import RoverRoster from './RoverRoster.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 NightVisionControl from './NightVisionControl.jsx';
|
||||||
import HornControl from './HornControl.jsx';
|
import HornControl from './HornControl.jsx';
|
||||||
import CameraTiltControl from './CameraTiltControl.jsx';
|
import CameraTiltControl from './CameraTiltControl.jsx';
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
import { useMemo, useState } from 'react';
|
import { useMemo, useState } from 'react';
|
||||||
import { useControlSystem } from '../controls/index.js';
|
import { useControlSystem } from '../../controls/index.js';
|
||||||
import { useTelemetryFrame } from '../context/TelemetryContext.jsx';
|
import { useTelemetryFrame } from '../../context/TelemetryContext.jsx';
|
||||||
import { formatKeyLabel } from '../controls/keymapUtils.js';
|
import { formatKeyLabel } from '../../controls/keymapUtils.js';
|
||||||
|
|
||||||
export function deriveDriveDockState(frame) {
|
export function deriveDriveDockState(frame) {
|
||||||
const sensors = frame?.sensors || {};
|
const sensors = frame?.sensors || {};
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
import { useControlSystem } from '../controls/index.js';
|
import { useControlSystem } from '../controls/index.js';
|
||||||
import { clampUnit } from '../controls/controlMath.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 NightVisionControl from './NightVisionControl.jsx';
|
||||||
import HornControl from './HornControl.jsx';
|
import HornControl from './HornControl.jsx';
|
||||||
import CameraTiltControl from './CameraTiltControl.jsx';
|
import CameraTiltControl from './CameraTiltControl.jsx';
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { LinkButtonsPanel, NicknameEntryPanel } from './UserListPanel.jsx';
|
|||||||
import ReplaySourcesPanel from './ReplaySourcesPanel.jsx';
|
import ReplaySourcesPanel from './ReplaySourcesPanel.jsx';
|
||||||
import Tabs, { Tab, TabList, TabPanel, TabPanels } from './Tabs.jsx';
|
import Tabs, { Tab, TabList, TabPanel, TabPanels } from './Tabs.jsx';
|
||||||
import TopDownMap from './TopDownMap.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 { useTelemetryFrame } from '../context/TelemetryContext.jsx';
|
||||||
import { useControlSystem } from '../controls/index.js';
|
import { useControlSystem } from '../controls/index.js';
|
||||||
import RoverQueuesPanel from './RoverQueuesPanel.jsx';
|
import RoverQueuesPanel from './RoverQueuesPanel.jsx';
|
||||||
|
|||||||
Reference in New Issue
Block a user