@@ -21,8 +21,6 @@ import {
2121 Chip ,
2222 Typography ,
2323 Collapse ,
24- RadioGroup ,
25- Radio ,
2624} from '@mui/material' ;
2725import { useTranslation } from 'react-i18next' ;
2826import GeneralSettingsDialog from './GeneralSettingsDialog.tsx' ;
@@ -149,8 +147,11 @@ function OptionButton(props: OptionButtonProps) {
149147 return localStorage . getItem ( 'serverSideRecordingChecked' ) === 'true' ;
150148 } ,
151149 ) ;
152- const [ serverRecordingMode , setServerRecordingMode ] = React . useState < 'grid' | 'separate' > ( ( ) => {
153- return localStorage . getItem ( 'serverRecordingMode' ) === 'separate' ? 'separate' : 'grid' ;
150+ const [ gridRecordingChecked , setGridRecordingChecked ] = React . useState < boolean > ( ( ) => {
151+ return localStorage . getItem ( 'gridRecordingChecked' ) !== 'false' ;
152+ } ) ;
153+ const [ recordSeparatelyChecked , setRecordSeparatelyChecked ] = React . useState < boolean > ( ( ) => {
154+ return localStorage . getItem ( 'recordSeparatelyChecked' ) === 'true' ;
154155 } ) ;
155156
156157 React . useEffect ( ( ) => {
@@ -162,8 +163,12 @@ function OptionButton(props: OptionButtonProps) {
162163 } , [ serverSideRecordingChecked ] ) ;
163164
164165 React . useEffect ( ( ) => {
165- localStorage . setItem ( 'serverRecordingMode' , serverRecordingMode ) ;
166- } , [ serverRecordingMode ] ) ;
166+ localStorage . setItem ( 'gridRecordingChecked' , String ( gridRecordingChecked ) ) ;
167+ } , [ gridRecordingChecked ] ) ;
168+
169+ React . useEffect ( ( ) => {
170+ localStorage . setItem ( 'recordSeparatelyChecked' , String ( recordSeparatelyChecked ) ) ;
171+ } , [ recordSeparatelyChecked ] ) ;
167172 const [ _hovered , setHovered ] = React . useState < boolean > ( false ) ;
168173 const theme = useTheme ( ) ;
169174 const themeContext = React . useContext ( ThemeContext ) ;
@@ -297,7 +302,7 @@ function OptionButton(props: OptionButtonProps) {
297302 } ;
298303
299304 const handleRecordingConfirm = ( ) : void => {
300- const recordSeparately = serverSideRecordingChecked && serverRecordingMode === 'separate' ;
305+ const recordSeparately = serverSideRecordingChecked && recordSeparatelyChecked ;
301306 props ?. startRecord ?.( recordSeparately , serverSideRecordingChecked , localRecordingChecked ) ;
302307 if ( localRecordingChecked && props . startLocalRecording ) {
303308 props . startLocalRecording ( ) ;
@@ -433,14 +438,15 @@ function OptionButton(props: OptionButtonProps) {
433438 }
434439 />
435440 < Collapse in = { serverSideRecordingChecked } >
436- < RadioGroup
437- value = { serverRecordingMode }
438- onChange = { ( e ) => setServerRecordingMode ( e . target . value as 'grid' | 'separate' ) }
439- sx = { { pl : 4 , pr : 1 , pb : 0.5 } }
440- >
441+ < Box sx = { { pl : 4 , pr : 1 , pb : 0.5 } } >
441442 < FormControlLabel
442- value = "grid"
443- control = { < Radio size = "small" /> }
443+ control = {
444+ < Checkbox
445+ size = "small"
446+ checked = { gridRecordingChecked }
447+ onChange = { ( e ) => setGridRecordingChecked ( e . target . checked ) }
448+ />
449+ }
444450 sx = { { alignItems : 'flex-start' , width : '100%' , m : 0 , mt : 1 } }
445451 label = {
446452 < Box >
@@ -452,8 +458,13 @@ function OptionButton(props: OptionButtonProps) {
452458 }
453459 />
454460 < FormControlLabel
455- value = "separate"
456- control = { < Radio size = "small" /> }
461+ control = {
462+ < Checkbox
463+ size = "small"
464+ checked = { recordSeparatelyChecked }
465+ onChange = { ( e ) => setRecordSeparatelyChecked ( e . target . checked ) }
466+ />
467+ }
457468 sx = { { alignItems : 'flex-start' , width : '100%' , m : 0 , mt : 1.5 } }
458469 label = {
459470 < Box >
@@ -468,7 +479,7 @@ function OptionButton(props: OptionButtonProps) {
468479 </ Box >
469480 }
470481 />
471- </ RadioGroup >
482+ </ Box >
472483 </ Collapse >
473484 </ Box >
474485 < Box
@@ -508,7 +519,10 @@ function OptionButton(props: OptionButtonProps) {
508519 < Button
509520 onClick = { handleRecordingConfirm }
510521 variant = "contained"
511- disabled = { ! serverSideRecordingChecked && ! localRecordingChecked }
522+ disabled = {
523+ ( ! serverSideRecordingChecked && ! localRecordingChecked ) ||
524+ ( serverSideRecordingChecked && ! gridRecordingChecked && ! recordSeparatelyChecked )
525+ }
512526 >
513527 { t ( 'Start Recording' ) }
514528 </ Button >
0 commit comments