feat: Add feature flag for scroll sensitivity settings (#245)

- Integrate feature flag for scroll sensitivity configuration
- Conditionally render scroll sensitivity settings based on app version
- Update useEffect to only fetch scroll sensitivity when feature flag is enabled
This commit is contained in:
Adam Shiervani 2025-03-12 14:55:44 +01:00 committed by GitHub
parent a55774b0de
commit e66190df0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 33 additions and 24 deletions

View File

@ -10,6 +10,8 @@ import { useCallback, useEffect, useState } from "react";
import { useJsonRpc } from "@/hooks/useJsonRpc"; import { useJsonRpc } from "@/hooks/useJsonRpc";
import { cx } from "../cva.config"; import { cx } from "../cva.config";
import { SelectMenuBasic } from "../components/SelectMenuBasic"; import { SelectMenuBasic } from "../components/SelectMenuBasic";
import { useFeatureFlag } from "../hooks/useFeatureFlag";
import { FeatureFlag } from "../components/FeatureFlag";
type ScrollSensitivity = "low" | "default" | "high"; type ScrollSensitivity = "low" | "default" | "high";
@ -21,6 +23,8 @@ export default function SettingsKeyboardMouseRoute() {
state => state.setScrollSensitivity, state => state.setScrollSensitivity,
); );
const { isEnabled: isScrollSensitivityEnabled } = useFeatureFlag("0.3.8");
const [jiggler, setJiggler] = useState(false); const [jiggler, setJiggler] = useState(false);
const [send] = useJsonRpc(); const [send] = useJsonRpc();
@ -31,11 +35,13 @@ export default function SettingsKeyboardMouseRoute() {
setJiggler(resp.result as boolean); setJiggler(resp.result as boolean);
}); });
if (isScrollSensitivityEnabled) {
send("getScrollSensitivity", {}, resp => { send("getScrollSensitivity", {}, resp => {
if ("error" in resp) return; if ("error" in resp) return;
setScrollSensitivity(resp.result as ScrollSensitivity); setScrollSensitivity(resp.result as ScrollSensitivity);
}); });
}, [send, setScrollSensitivity]); }
}, [isScrollSensitivityEnabled, send, setScrollSensitivity]);
const handleJigglerChange = (enabled: boolean) => { const handleJigglerChange = (enabled: boolean) => {
send("setJigglerState", { enabled }, resp => { send("setJigglerState", { enabled }, resp => {
@ -82,6 +88,8 @@ export default function SettingsKeyboardMouseRoute() {
onChange={e => setHideCursor(e.target.checked)} onChange={e => setHideCursor(e.target.checked)}
/> />
</SettingsItem> </SettingsItem>
<FeatureFlag minAppVersion="0.3.8" name="Scroll Sensitivity">
<SettingsItem <SettingsItem
title="Scroll Sensitivity" title="Scroll Sensitivity"
description="Adjust the scroll sensitivity" description="Adjust the scroll sensitivity"
@ -101,6 +109,7 @@ export default function SettingsKeyboardMouseRoute() {
} }
/> />
</SettingsItem> </SettingsItem>
</FeatureFlag>
<SettingsItem <SettingsItem
title="Jiggler" title="Jiggler"