Skip to content

Commit e66190d

Browse files
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
1 parent a55774b commit e66190d

File tree

1 file changed

+33
-24
lines changed

1 file changed

+33
-24
lines changed

ui/src/routes/devices.$id.settings.mouse.tsx

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { useCallback, useEffect, useState } from "react";
1010
import { useJsonRpc } from "@/hooks/useJsonRpc";
1111
import { cx } from "../cva.config";
1212
import { SelectMenuBasic } from "../components/SelectMenuBasic";
13+
import { useFeatureFlag } from "../hooks/useFeatureFlag";
14+
import { FeatureFlag } from "../components/FeatureFlag";
1315

1416
type ScrollSensitivity = "low" | "default" | "high";
1517

@@ -21,6 +23,8 @@ export default function SettingsKeyboardMouseRoute() {
2123
state => state.setScrollSensitivity,
2224
);
2325

26+
const { isEnabled: isScrollSensitivityEnabled } = useFeatureFlag("0.3.8");
27+
2428
const [jiggler, setJiggler] = useState(false);
2529

2630
const [send] = useJsonRpc();
@@ -31,11 +35,13 @@ export default function SettingsKeyboardMouseRoute() {
3135
setJiggler(resp.result as boolean);
3236
});
3337

34-
send("getScrollSensitivity", {}, resp => {
35-
if ("error" in resp) return;
36-
setScrollSensitivity(resp.result as ScrollSensitivity);
37-
});
38-
}, [send, setScrollSensitivity]);
38+
if (isScrollSensitivityEnabled) {
39+
send("getScrollSensitivity", {}, resp => {
40+
if ("error" in resp) return;
41+
setScrollSensitivity(resp.result as ScrollSensitivity);
42+
});
43+
}
44+
}, [isScrollSensitivityEnabled, send, setScrollSensitivity]);
3945

4046
const handleJigglerChange = (enabled: boolean) => {
4147
send("setJigglerState", { enabled }, resp => {
@@ -82,25 +88,28 @@ export default function SettingsKeyboardMouseRoute() {
8288
onChange={e => setHideCursor(e.target.checked)}
8389
/>
8490
</SettingsItem>
85-
<SettingsItem
86-
title="Scroll Sensitivity"
87-
description="Adjust the scroll sensitivity"
88-
>
89-
<SelectMenuBasic
90-
size="SM"
91-
label=""
92-
fullWidth
93-
value={scrollSensitivity}
94-
onChange={onScrollSensitivityChange}
95-
options={
96-
[
97-
{ label: "Low", value: "low" },
98-
{ label: "Default", value: "default" },
99-
{ label: "High", value: "high" },
100-
] as { label: string; value: ScrollSensitivity }[]
101-
}
102-
/>
103-
</SettingsItem>
91+
92+
<FeatureFlag minAppVersion="0.3.8" name="Scroll Sensitivity">
93+
<SettingsItem
94+
title="Scroll Sensitivity"
95+
description="Adjust the scroll sensitivity"
96+
>
97+
<SelectMenuBasic
98+
size="SM"
99+
label=""
100+
fullWidth
101+
value={scrollSensitivity}
102+
onChange={onScrollSensitivityChange}
103+
options={
104+
[
105+
{ label: "Low", value: "low" },
106+
{ label: "Default", value: "default" },
107+
{ label: "High", value: "high" },
108+
] as { label: string; value: ScrollSensitivity }[]
109+
}
110+
/>
111+
</SettingsItem>
112+
</FeatureFlag>
104113

105114
<SettingsItem
106115
title="Jiggler"

0 commit comments

Comments
 (0)