replay panel tweaking..

This commit is contained in:
legop3
2026-05-19 16:13:10 -04:00
parent 8a7be00bf6
commit e432e3de79
4 changed files with 32 additions and 24 deletions
+8 -5
View File
@@ -1,9 +1,12 @@
1. add faster way for admins to login, like an invisible button in top left or something
2. add tool call embeds or something for the llm bot in discord, probably not in web ui
3. add discord bot typing thing for when someone requests a replay
4. change replay title for ones requested from discord, something other than "requester driving rover"
5. fix rover request spam queue cheat
6. enable scrolling on horn frequencies, turn down frequency limit to like 3500
2. make camera card not wait for ack before sending next command. speed is inconsistent and this is bad.
3. add tool call embeds or something for the llm bot in discord, probably not in web ui
1. fix overseer prompt so it doesnt talk every run
2. rename neato locate to neato playsound for overseer
3. you can't control the rovers
4. add discord bot typing thing for when someone requests a replay
5. change replay title for ones requested from discord, something other than "requester driving rover"
6. fix rover request spam queue cheat
7. make replays more instant, probably make segments shorter
1. fix replay UI so it doesnt save anything in cookie
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -11,7 +11,7 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Roomba Rover" />
<title>Roomba Rover</title>
<script type="module" crossorigin src="/assets/index-ZJG0zdLU.js"></script>
<script type="module" crossorigin src="/assets/index-3_2nPjxD.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-LJWnKvT4.css">
</head>
<body>
@@ -63,13 +63,8 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
}, [users, selfSocketId, assignmentRoverId, roster]);
useEffect(() => {
const saved = settings?.[panelId];
if (Array.isArray(saved) && saved.length) {
setSelected(saved);
return;
}
setSelected(defaults);
}, [settings?.[panelId], defaults, panelId]);
}, [defaults]);
useEffect(() => {
const saved = settings?.[`${panelId}:includeSidebar`];
@@ -80,6 +75,16 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
setIncludeSidebar(true);
}, [settings?.[`${panelId}:includeSidebar`], panelId]);
useEffect(() => {
const saved = settings?.[`${panelId}:title`];
if (typeof saved === 'string') {
setTitle(saved);
setTitleDirty(true);
return;
}
setTitleDirty(false);
}, [settings?.[`${panelId}:title`], panelId]);
useEffect(() => {
if (!titleDirty) {
setTitle(defaultTitle);
@@ -116,9 +121,7 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
const toggleKey = (key) => {
setSelected((prev) => {
const next = prev.includes(key) ? prev.filter((value) => value !== key) : [...prev, key];
saveSettings((current) => ({ ...(current || {}), [panelId]: next }));
return next;
return prev.includes(key) ? prev.filter((value) => value !== key) : [...prev, key];
});
setSuccess(null);
};
@@ -166,8 +169,10 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
className="field-input w-full text-xs"
value={title}
onChange={(event) => {
setTitle(event.target.value);
const next = event.target.value;
setTitle(next);
setTitleDirty(true);
saveSettings((current) => ({ ...(current || {}), [`${panelId}:title`]: next }));
}}
placeholder={defaultTitle}
maxLength={120}