Skip to content

Commit cbaf6dd

Browse files
committed
adding settings toggle
1 parent d6c13d8 commit cbaf6dd

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

web/src/pages/desktop/menu/settings/device/virtual-devices.tsx

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ export const VirtualDevices = () => {
88
const { t } = useTranslation();
99

1010
const [isNetworkOn, setIsNetworkOn] = useState(false);
11+
const [isMediaOn, setIsMediaOn] = useState(false);
1112
const [isDiskOn, setIsDiskOn] = useState(false);
12-
const [loading, setLoading] = useState(''); // '' | 'network' | 'disk'
13+
const [loading, setLoading] = useState(''); // '' | 'network' | 'media' | 'disk'
1314

1415
useEffect(() => {
1516
api.getVirtualDevice().then((rsp) => {
@@ -18,11 +19,12 @@ export const VirtualDevices = () => {
1819
}
1920

2021
setIsNetworkOn(rsp.data.network);
22+
setIsMediaOn(rsp.data.media);
2123
setIsDiskOn(rsp.data.disk);
2224
});
2325
}, []);
2426

25-
function update(device: 'network' | 'disk') {
27+
function update(device: 'network' | 'media' | 'disk') {
2628
if (loading) return;
2729
setLoading(device);
2830

@@ -33,10 +35,16 @@ export const VirtualDevices = () => {
3335
return;
3436
}
3537

36-
if (device === 'network') {
37-
setIsNetworkOn(rsp.data.on);
38-
} else {
39-
setIsDiskOn(rsp.data.on);
38+
switch (device) {
39+
case 'network':
40+
setIsNetworkOn(rsp.data.on);
41+
break;
42+
case 'media':
43+
setIsMediaOn(rsp.data.on);
44+
break;
45+
case 'disk':
46+
setIsDiskOn(rsp.data.on);
47+
break;
4048
}
4149
})
4250
.finally(() => {
@@ -46,6 +54,15 @@ export const VirtualDevices = () => {
4654

4755
return (
4856
<>
57+
<div className="flex items-center justify-between">
58+
<div className="flex flex-col">
59+
<span>{t('settings.device.media')}</span>
60+
<span className="text-xs text-neutral-500">{t('settings.device.mediaDesc')}</span>
61+
</div>
62+
63+
<Switch checked={isMediaOn} loading={loading === 'media'} onChange={() => update('media')} />
64+
</div>
65+
4966
<div className="flex items-center justify-between">
5067
<div className="flex flex-col">
5168
<span>{t('settings.device.disk')}</span>

0 commit comments

Comments
 (0)