@@ -8,8 +8,9 @@ export const VirtualDevices = () => {
8
8
const { t } = useTranslation ( ) ;
9
9
10
10
const [ isNetworkOn , setIsNetworkOn ] = useState ( false ) ;
11
+ const [ isMediaOn , setIsMediaOn ] = useState ( false ) ;
11
12
const [ isDiskOn , setIsDiskOn ] = useState ( false ) ;
12
- const [ loading , setLoading ] = useState ( '' ) ; // '' | 'network' | 'disk'
13
+ const [ loading , setLoading ] = useState ( '' ) ; // '' | 'network' | 'media' | ' disk'
13
14
14
15
useEffect ( ( ) => {
15
16
api . getVirtualDevice ( ) . then ( ( rsp ) => {
@@ -18,11 +19,12 @@ export const VirtualDevices = () => {
18
19
}
19
20
20
21
setIsNetworkOn ( rsp . data . network ) ;
22
+ setIsMediaOn ( rsp . data . media ) ;
21
23
setIsDiskOn ( rsp . data . disk ) ;
22
24
} ) ;
23
25
} , [ ] ) ;
24
26
25
- function update ( device : 'network' | 'disk' ) {
27
+ function update ( device : 'network' | 'media' | ' disk') {
26
28
if ( loading ) return ;
27
29
setLoading ( device ) ;
28
30
@@ -33,10 +35,16 @@ export const VirtualDevices = () => {
33
35
return ;
34
36
}
35
37
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 ;
40
48
}
41
49
} )
42
50
. finally ( ( ) => {
@@ -46,6 +54,15 @@ export const VirtualDevices = () => {
46
54
47
55
return (
48
56
< >
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
+
49
66
< div className = "flex items-center justify-between" >
50
67
< div className = "flex flex-col" >
51
68
< span > { t ( 'settings.device.disk' ) } </ span >
0 commit comments