Skip to content
OverlaySettings.tsx 1.66 KiB
Newer Older
import { Slider, Spinner, Switch } from "@nextui-org/react";
Grant's avatar
Grant committed
import { useAppContext } from "../../contexts/AppContext";

export const OverlaySettings = () => {
Grant's avatar
Grant committed
  const { blankOverlay, setBlankOverlay, heatmapOverlay, setHeatmapOverlay } =
Grant's avatar
Grant committed

  return (
    <>
      <header>
        <h2>Overlays</h2>
      </header>
      <section>
        <Switch
Grant's avatar
Grant committed
          isSelected={blankOverlay.enabled}
Grant's avatar
Grant committed
            setBlankOverlay((vv) => ({ ...vv, enabled: v }))
Grant's avatar
Grant committed
        >
Grant's avatar
Grant committed
          Blank Canvas Overlay
Grant's avatar
Grant committed
        </Switch>
Grant's avatar
Grant committed
        {blankOverlay.enabled && (
Grant's avatar
Grant committed
            label="Blank Canvas Opacity"
Grant's avatar
Grant committed
            value={blankOverlay.opacity}
Grant's avatar
Grant committed
              setBlankOverlay((vv) => ({ ...vv, opacity: v as number }))
            }
            getValue={(v) => (v as number) * 100 + "%"}
          />
        )}

        <Switch
          isSelected={heatmapOverlay.enabled}
          onValueChange={(v) =>
            setHeatmapOverlay((vv) => ({ ...vv, enabled: v }))
          }
        >
          {heatmapOverlay.loading && <Spinner size="sm" />}
          Heatmap Overlay
        </Switch>
        {heatmapOverlay.enabled && (
          <Slider
            label="Heatmap Opacity"
            step={0.1}
            minValue={0}
            maxValue={1}
            value={heatmapOverlay.opacity}
            onChange={(v) =>
              setHeatmapOverlay((vv) => ({ ...vv, opacity: v as number }))
            }
            getValue={(v) => (v as number) * 100 + "%"}
          />
        )}
Grant's avatar
Grant committed
      </section>
    </>
  );
};