import { CheckCircleIcon } from "@heroicons/react/16/solid"; import { useEffect, useState } from "react"; import MouseIcon from "@/assets/mouse-icon.svg"; import PointingFinger from "@/assets/pointing-finger.svg"; import { GridCard } from "@/components/Card"; import { Checkbox } from "@/components/Checkbox"; import { useSettingsStore } from "@/hooks/stores"; import { useJsonRpc } from "@/hooks/useJsonRpc"; import notifications from "@/notifications"; import { SettingsPageHeader } from "@components/SettingsPageheader"; import { SelectMenuBasic } from "@components/SelectMenuBasic"; import { useFeatureFlag } from "../hooks/useFeatureFlag"; import { cx } from "../cva.config"; import { SettingsItem } from "./devices.$id.settings"; export default function SettingsMouseRoute() { const hideCursor = useSettingsStore(state => state.isCursorHidden); const setHideCursor = useSettingsStore(state => state.setCursorVisibility); const mouseMode = useSettingsStore(state => state.mouseMode); const setMouseMode = useSettingsStore(state => state.setMouseMode); const { isEnabled: isScrollSensitivityEnabled } = useFeatureFlag("0.3.8"); const [jiggler, setJiggler] = useState(false); const scrollThrottling = useSettingsStore(state => state.scrollThrottling); const setScrollThrottling = useSettingsStore( state => state.setScrollThrottling, ); const scrollThrottlingOptions = [ { value: "0", label: "Off" }, { value: "10", label: "Low" }, { value: "25", label: "Medium" }, { value: "50", label: "High" }, { value: "100", label: "Very High" }, ]; const [send] = useJsonRpc(); useEffect(() => { send("getJigglerState", {}, resp => { if ("error" in resp) return; setJiggler(resp.result as boolean); }); }, [isScrollSensitivityEnabled, send]); const handleJigglerChange = (enabled: boolean) => { send("setJigglerState", { enabled }, resp => { if ("error" in resp) { notifications.error( `Failed to set jiggler state: ${resp.error.data || "Unknown error"}`, ); return; } setJiggler(enabled); }); }; return (