Primer: Operator Page
Directory Layout
src/pages/operator/
├── html/ # Entry HTML page
├── css/ # Page and component stylesheets
├── icons/ # SVG icon assets
└── tsx/ # All TypeScript/React source
├── index.tsx # Module entry point — bootstraps WebRTC and renders root
├── MobileOperator.tsx # Mobile operator root component
├── function_providers/ # Logic layer connecting UI to the robot
├── layout_components/ # Composite, stateful UI components
├── basic_components/ # Small, reusable UI primitives
├── static_components/ # Mostly-fixed UI panels (header, sidebar, etc.)
├── storage_handler/ # Layout persistence (local or Firebase)
├── utils/ # Shared types, enums, and small utilities
└── default_layouts/ # JSON default layout configsShared Layer (src/shared/)
src/shared/)commands.tsx
commands.tsxremoterobot.tsx
remoterobot.tsxutil.tsx
util.tsxwebrtcconnections.tsx
webrtcconnections.tsxEntry Point: tsx/index.tsx
tsx/index.tsxExport
Type
Description
Root Components
MobileOperator.tsx
MobileOperator.tsxFunction Providers (tsx/function_providers/)
tsx/function_providers/)FunctionProvider (base class)
FunctionProvider (base class)ButtonFunctionProvider
ButtonFunctionProviderMovementRecorderFunctionProvider
MovementRecorderFunctionProviderUnderMapFunctionProvider
UnderMapFunctionProviderHomeTheRobotFunctionProvider
HomeTheRobotFunctionProviderRunStopFunctionProvider
RunStopFunctionProviderBatteryVoltageFunctionProvider
BatteryVoltageFunctionProviderMapFunctionProvider
MapFunctionProviderCameraSwitcherFunctionProvider
CameraSwitcherFunctionProviderComponent Folders
Notable Layout Components
Component
Purpose
Notable Static Components
Component
Purpose
Notable Basic Components
Component
Purpose
Storage Handler (tsx/storage_handler/)
tsx/storage_handler/)Utils (tsx/utils/)
tsx/utils/)File
Contents
Full Data Flow
How to Add a New Feature (Summary)
Key Design Decisions
Last updated
Was this helpful?
