mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
48 lines
1.9 KiB
React
48 lines
1.9 KiB
React
// Help Overlay
|
|
// Purpose: Defines the Help Overlay module and the local helpers/components used in this file.
|
|
// Scope: Keeps behavior unchanged while isolating this concern into a clear, single-responsibility unit.
|
|
import { useControlSelector } from '../../controls/index.js';
|
|
import HelpContentView from '../HelpContentView/index.jsx';
|
|
|
|
export default function HelpOverlay({ visible, layout, onClose, showOnLoad, onToggleShowOnLoad }) {
|
|
const keymap = useControlSelector((control) => control.state.keymap);
|
|
|
|
if (!visible) return null;
|
|
|
|
const handleCheckbox = (event) => {
|
|
const keepShowing = !event.target.checked;
|
|
onToggleShowOnLoad?.(keepShowing);
|
|
};
|
|
|
|
return (
|
|
<div className="fixed inset-0 z-30 flex items-center justify-center bg-black/80 px-0.5 py-0.5">
|
|
<div className="pointer-events-auto surface w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-2xl">
|
|
<div className="flex items-center justify-between border-b border-slate-700 px-0.5 py-0.25 text-sm text-slate-200">
|
|
<span className="font-semibold">Help & controls</span>
|
|
<div className="flex items-center gap-0.5 text-[0.8rem] text-slate-300">
|
|
<label className="flex items-center gap-0.5">
|
|
<input
|
|
type="checkbox"
|
|
checked={!showOnLoad}
|
|
onChange={handleCheckbox}
|
|
className="accent-cyan-500"
|
|
/>
|
|
<span>Don't show again</span>
|
|
</label>
|
|
<button
|
|
type="button"
|
|
onClick={onClose}
|
|
className="button-dark px-2 py-0.25 text-[0.8rem]"
|
|
>
|
|
Close
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div className="max-h-[85vh] overflow-y-auto p-0.5">
|
|
<HelpContentView layout={layout} keymap={keymap || {}} />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|