mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
add activities tab, make replay popup smaller and muted
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -12,8 +12,8 @@
|
|||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||||
<meta name="apple-mobile-web-app-title" content="Roomba Rover" />
|
<meta name="apple-mobile-web-app-title" content="Roomba Rover" />
|
||||||
<title>Roomba Rover</title>
|
<title>Roomba Rover</title>
|
||||||
<script type="module" crossorigin src="/assets/index-Dmdzc1Vt.js"></script>
|
<script type="module" crossorigin src="/assets/index-D7L_pr9D.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-DSZycrrG.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-CjmiVAqR.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
|||||||
+8
-2
@@ -126,6 +126,7 @@ function MobileFeatureTabs({
|
|||||||
<Tabs defaultTab="chat" currentTab={activeTab} onTabChange={setActiveTab}>
|
<Tabs defaultTab="chat" currentTab={activeTab} onTabChange={setActiveTab}>
|
||||||
<TabList>
|
<TabList>
|
||||||
<Tab id="chat">Chat</Tab>
|
<Tab id="chat">Chat</Tab>
|
||||||
|
<Tab id="activities">Activities</Tab>
|
||||||
<Tab id="vip" highlight={vipClipPlaying ? 'green' : vipMicActive ? 'pink' : 'none'}>
|
<Tab id="vip" highlight={vipClipPlaying ? 'green' : vipMicActive ? 'pink' : 'none'}>
|
||||||
<span className="inline-flex items-center gap-0.5">
|
<span className="inline-flex items-center gap-0.5">
|
||||||
<span>VIP</span>
|
<span>VIP</span>
|
||||||
@@ -155,6 +156,13 @@ function MobileFeatureTabs({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
|
{/* activities tab */}
|
||||||
|
<TabPanel id="activities">
|
||||||
|
<div className={`flex flex-col ${themeGapClass}`}>
|
||||||
|
<ButtonBoxPanel />
|
||||||
|
<KinectPanel />
|
||||||
|
</div>
|
||||||
|
</TabPanel>
|
||||||
<TabPanel id="vip" keepMounted>
|
<TabPanel id="vip" keepMounted>
|
||||||
<VipPanel isActive={activeTab === 'vip'} />
|
<VipPanel isActive={activeTab === 'vip'} />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
@@ -162,9 +170,7 @@ function MobileFeatureTabs({
|
|||||||
<div className={themeStackClass}>
|
<div className={themeStackClass}>
|
||||||
{/* {showTelemetry ? <TelemetryPanel /> : null} */}
|
{/* {showTelemetry ? <TelemetryPanel /> : null} */}
|
||||||
<HomeAssistantControls />
|
<HomeAssistantControls />
|
||||||
<ButtonBoxPanel />
|
|
||||||
<RoomCameraPanel panelId={roomPanelId} />
|
<RoomCameraPanel panelId={roomPanelId} />
|
||||||
<KinectPanel />
|
|
||||||
</div>
|
</div>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
<TabPanel id="help">
|
<TabPanel id="help">
|
||||||
|
|||||||
@@ -121,11 +121,12 @@ export default function ReplayReadyPopup({ replay, onClose, variant = 'modal' })
|
|||||||
autoPlay
|
autoPlay
|
||||||
preload="auto"
|
preload="auto"
|
||||||
playsInline
|
playsInline
|
||||||
|
muted
|
||||||
{...videoLifecycleProps}
|
{...videoLifecycleProps}
|
||||||
// The floating panel is intentionally compact because it appears for users who
|
// The floating panel is intentionally compact because it appears for users who
|
||||||
// did not ask for the replay. It still loads the video immediately, but its
|
// did not ask for the replay. It still loads the video immediately, but its
|
||||||
// bounded height prevents the floating card from covering too much of the UI.
|
// bounded height prevents the floating card from covering too much of the UI.
|
||||||
className="aspect-video max-h-[24rem] w-full bg-black"
|
className="aspect-video max-h-[14rem] w-full bg-black"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</CardFrame>
|
</CardFrame>
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
|
|||||||
return (
|
return (
|
||||||
<div className={`relative ${fillHeight ? 'flex h-full min-h-0 flex-col' : ''}`}>
|
<div className={`relative ${fillHeight ? 'flex h-full min-h-0 flex-col' : ''}`}>
|
||||||
{showPanelReplay ? (
|
{showPanelReplay ? (
|
||||||
<div className="absolute bottom-[calc(100%+0.125rem)] left-1/2 z-[70] w-[min(42rem,calc(100vw-1rem))] -translate-x-1/2">
|
<div className="absolute bottom-[calc(100%+0.125rem)] left-1/2 z-[70] w-[min(20rem,calc(100vw-1rem))] -translate-x-1/2">
|
||||||
<ReplayReadyPopup
|
<ReplayReadyPopup
|
||||||
replay={latestReplay}
|
replay={latestReplay}
|
||||||
variant="floating-panel"
|
variant="floating-panel"
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ export default function RightPaneTabs({ layout, onOpenHelpOverlay }) {
|
|||||||
<Tabs defaultTab="telemetry" currentTab={activeTab} onTabChange={setActiveTab}>
|
<Tabs defaultTab="telemetry" currentTab={activeTab} onTabChange={setActiveTab}>
|
||||||
<TabList>
|
<TabList>
|
||||||
<Tab id="telemetry">Controls</Tab>
|
<Tab id="telemetry">Controls</Tab>
|
||||||
|
<Tab id="activities">Activities</Tab>
|
||||||
<Tab id="vip" highlight={vipClipPlaying ? 'green' : vipMicActive ? 'pink' : 'none'}>
|
<Tab id="vip" highlight={vipClipPlaying ? 'green' : vipMicActive ? 'pink' : 'none'}>
|
||||||
<span className="inline-flex items-center gap-2">
|
<span className="inline-flex items-center gap-2">
|
||||||
<span>VIP</span>
|
<span>VIP</span>
|
||||||
@@ -309,17 +310,29 @@ export default function RightPaneTabs({ layout, onOpenHelpOverlay }) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<HomeAssistantControls />
|
<HomeAssistantControls />
|
||||||
<ButtonBoxPanel />
|
|
||||||
<RoomCameraPanel defaultOrientation="horizontal" panelId="rightpane-telemetry" />
|
<RoomCameraPanel defaultOrientation="horizontal" panelId="rightpane-telemetry" />
|
||||||
|
</div>
|
||||||
|
</TabPanel>
|
||||||
|
|
||||||
|
{/* activities tab */}
|
||||||
|
<TabPanel id="activities">
|
||||||
|
<div className={`flex flex-col ${themeGapClass}`}>
|
||||||
|
<ButtonBoxPanel />
|
||||||
<KinectPanel />
|
<KinectPanel />
|
||||||
</div>
|
</div>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
|
|
||||||
|
{/* VIP tab */}
|
||||||
<TabPanel id="vip" keepMounted>
|
<TabPanel id="vip" keepMounted>
|
||||||
<VipPanel isActive={activeTab === 'vip'} />
|
<VipPanel isActive={activeTab === 'vip'} />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
|
|
||||||
|
{/* help tab */}
|
||||||
<TabPanel id="help">
|
<TabPanel id="help">
|
||||||
<HelpPanel layout={layout} onOpenOverlay={onOpenHelpOverlay} />
|
<HelpPanel layout={layout} onOpenOverlay={onOpenHelpOverlay} />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
|
|
||||||
|
{/* settings tab */}
|
||||||
<TabPanel id="settings">
|
<TabPanel id="settings">
|
||||||
<SettingsPanel />
|
<SettingsPanel />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ const TAB_HIGHLIGHTS = {
|
|||||||
none: '',
|
none: '',
|
||||||
pink: 'bg-pink-500 text-white border-pink-200 hover:bg-pink-400',
|
pink: 'bg-pink-500 text-white border-pink-200 hover:bg-pink-400',
|
||||||
green: 'bg-emerald-500 text-white border-emerald-200 hover:bg-emerald-400',
|
green: 'bg-emerald-500 text-white border-emerald-200 hover:bg-emerald-400',
|
||||||
|
pinkblue: 'bg-gradient-to-r from-lime-800 to-teal-800'
|
||||||
};
|
};
|
||||||
|
|
||||||
const DEFAULT_VARIANT = 'primary';
|
const DEFAULT_VARIANT = 'primary';
|
||||||
|
|||||||
Reference in New Issue
Block a user