mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
move replay info line to above
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@
|
|||||||
<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-BWCCFBa_.js"></script>
|
<script type="module" crossorigin src="/assets/index-ByArKJJA.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-BcnYeuah.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-BcnYeuah.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -220,6 +220,12 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
|
|||||||
<GroupList title="Room Cams" items={grouped.rooms} selected={selected} onToggle={toggleKey} />
|
<GroupList title="Room Cams" items={grouped.rooms} selected={selected} onToggle={toggleKey} />
|
||||||
</div>
|
</div>
|
||||||
<div className="space-y-0.5">
|
<div className="space-y-0.5">
|
||||||
|
{error ? <div className="text-xs text-amber-400">{error}</div> : null}
|
||||||
|
{activeJobStatusText ? (
|
||||||
|
<div className={`text-xs ${activeReplayJob?.status === 'failed' ? 'text-amber-400' : 'text-emerald-300'}`}>
|
||||||
|
{activeJobStatusText}
|
||||||
|
</div>
|
||||||
|
) : success ? <div className="text-xs text-emerald-300">{success}</div> : null}
|
||||||
<div className="flex items-center gap-0.5">
|
<div className="flex items-center gap-0.5">
|
||||||
<label className="surface shrink-0 text-xs" htmlFor={`${panelId}-title`}>
|
<label className="surface shrink-0 text-xs" htmlFor={`${panelId}-title`}>
|
||||||
Replay title:
|
Replay title:
|
||||||
@@ -227,20 +233,20 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
|
|||||||
{/* The label has fixed-width content, while the input owns the remaining row space.
|
{/* The label has fixed-width content, while the input owns the remaining row space.
|
||||||
This keeps the title control compact without making the input compete with
|
This keeps the title control compact without making the input compete with
|
||||||
other controls or wrapping unpredictably on narrow panel layouts. */}
|
other controls or wrapping unpredictably on narrow panel layouts. */}
|
||||||
<input
|
<input
|
||||||
id={`${panelId}-title`}
|
id={`${panelId}-title`}
|
||||||
type="text"
|
type="text"
|
||||||
className="field-input min-w-0 flex-1 text-xs"
|
className="field-input min-w-0 flex-1 text-xs"
|
||||||
value={title}
|
value={title}
|
||||||
onChange={(event) => {
|
onChange={(event) => {
|
||||||
const next = event.target.value;
|
const next = event.target.value;
|
||||||
setTitle(next);
|
setTitle(next);
|
||||||
setTitleDirty(true);
|
setTitleDirty(true);
|
||||||
saveSettings((current) => ({ ...(current || {}), [`${panelId}:title`]: next }));
|
saveSettings((current) => ({ ...(current || {}), [`${panelId}:title`]: next }));
|
||||||
}}
|
}}
|
||||||
placeholder={defaultTitle}
|
placeholder={defaultTitle}
|
||||||
maxLength={120}
|
maxLength={120}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-0.5">
|
<div className="flex items-center gap-0.5">
|
||||||
<label className="surface flex shrink-0 items-center gap-0.5 text-xs">
|
<label className="surface flex shrink-0 items-center gap-0.5 text-xs">
|
||||||
@@ -267,12 +273,6 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
|
|||||||
{remainingMs > 0 ? `Replay (${Math.ceil(remainingMs / 1000)}s)` : busy ? 'Replay…' : 'Replay'}
|
{remainingMs > 0 ? `Replay (${Math.ceil(remainingMs / 1000)}s)` : busy ? 'Replay…' : 'Replay'}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{error ? <div className="text-xs text-amber-400">{error}</div> : null}
|
|
||||||
{activeJobStatusText ? (
|
|
||||||
<div className={`text-xs ${activeReplayJob?.status === 'failed' ? 'text-amber-400' : 'text-emerald-300'}`}>
|
|
||||||
{activeJobStatusText}
|
|
||||||
</div>
|
|
||||||
) : success ? <div className="text-xs text-emerald-300">{success}</div> : null}
|
|
||||||
</div>
|
</div>
|
||||||
</CardFrame>
|
</CardFrame>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user