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 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 2. make camera card not wait for ack before sending next command. speed is inconsistent and this is bad.
3. add discord bot typing thing for when someone requests a replay 3. add tool call embeds or something for the llm bot in discord, probably not in web ui
4. change replay title for ones requested from discord, something other than "requester driving rover" 1. fix overseer prompt so it doesnt talk every run
5. fix rover request spam queue cheat 2. rename neato locate to neato playsound for overseer
6. enable scrolling on horn frequencies, turn down frequency limit to like 3500 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 7. make replays more instant, probably make segments shorter
1. fix replay UI so it doesnt save anything in cookie 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-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-ZJG0zdLU.js"></script> <script type="module" crossorigin src="/assets/index-3_2nPjxD.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-LJWnKvT4.css"> <link rel="stylesheet" crossorigin href="/assets/index-LJWnKvT4.css">
</head> </head>
<body> <body>
@@ -63,13 +63,8 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
}, [users, selfSocketId, assignmentRoverId, roster]); }, [users, selfSocketId, assignmentRoverId, roster]);
useEffect(() => { useEffect(() => {
const saved = settings?.[panelId];
if (Array.isArray(saved) && saved.length) {
setSelected(saved);
return;
}
setSelected(defaults); setSelected(defaults);
}, [settings?.[panelId], defaults, panelId]); }, [defaults]);
useEffect(() => { useEffect(() => {
const saved = settings?.[`${panelId}:includeSidebar`]; const saved = settings?.[`${panelId}:includeSidebar`];
@@ -80,6 +75,16 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
setIncludeSidebar(true); setIncludeSidebar(true);
}, [settings?.[`${panelId}:includeSidebar`], panelId]); }, [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(() => { useEffect(() => {
if (!titleDirty) { if (!titleDirty) {
setTitle(defaultTitle); setTitle(defaultTitle);
@@ -116,9 +121,7 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
const toggleKey = (key) => { const toggleKey = (key) => {
setSelected((prev) => { setSelected((prev) => {
const next = prev.includes(key) ? prev.filter((value) => value !== key) : [...prev, key]; return prev.includes(key) ? prev.filter((value) => value !== key) : [...prev, key];
saveSettings((current) => ({ ...(current || {}), [panelId]: next }));
return next;
}); });
setSuccess(null); setSuccess(null);
}; };
@@ -166,8 +169,10 @@ export default function ReplaySourcesPanel({ panelId = 'replay-sources', fillHei
className="field-input w-full text-xs" className="field-input w-full text-xs"
value={title} value={title}
onChange={(event) => { onChange={(event) => {
setTitle(event.target.value); const next = event.target.value;
setTitle(next);
setTitleDirty(true); setTitleDirty(true);
saveSettings((current) => ({ ...(current || {}), [`${panelId}:title`]: next }));
}} }}
placeholder={defaultTitle} placeholder={defaultTitle}
maxLength={120} maxLength={120}