Skip to content

Commit 8099982

Browse files
committed
Merge branch 'epic/AC-DC' into TTS-273
2 parents 58021cf + 023457b commit 8099982

1 file changed

Lines changed: 41 additions & 28 deletions

File tree

src/Components/Footer/Components/OptionButton.tsx

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import {
2020
Box,
2121
Chip,
2222
Typography,
23-
Divider,
2423
} from '@mui/material';
2524
import { useTranslation } from 'react-i18next';
2625
import GeneralSettingsDialog from './GeneralSettingsDialog.tsx';
@@ -295,7 +294,13 @@ function OptionButton(props: OptionButtonProps) {
295294
};
296295

297296
const handleRecordingConfirm = (): void => {
298-
props?.startRecord?.(recordSeparately, serverSideRecordingChecked, localRecordingChecked);
297+
// Recording each participant separately is itself a server-side capability,
298+
// so it must enable server recording even if "Cloud recording" wasn't checked.
299+
props?.startRecord?.(
300+
recordSeparately,
301+
serverSideRecordingChecked || recordSeparately,
302+
localRecordingChecked,
303+
);
299304
if (localRecordingChecked && props.startLocalRecording) {
300305
props.startLocalRecording();
301306
}
@@ -418,41 +423,49 @@ function OptionButton(props: OptionButtonProps) {
418423
label={
419424
<Box sx={{ pt: 1 }}>
420425
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
421-
<Typography fontWeight={600}>{t('Cloud recording')}</Typography>
426+
<Typography fontWeight={600}>{t('Grid recording')}</Typography>
422427
<Chip label={t('SERVER-SIDE')} size="small" />
423428
</Box>
424429
<Typography variant="body2" color="text.secondary">
425430
{t(
426-
'Recorded and stored on Red5 Cloud. Best for sharing, long sessions, and high quality regardless of your connection.',
431+
'Records the meeting grid view as a single MP4 file, stored on Red5 Cloud. Best for sharing, long sessions, and high quality regardless of your connection.',
427432
)}
428433
</Typography>
429434
</Box>
430435
}
431436
/>
432-
{serverSideRecordingChecked && (
433-
<>
434-
<Divider sx={{ my: 1 }} />
435-
<FormControlLabel
436-
sx={{ alignItems: 'flex-start', width: '100%', m: 0, pl: 1 }}
437-
control={
438-
<Checkbox
439-
checked={recordSeparately}
440-
onChange={(e) => setRecordSeparately(e.target.checked)}
441-
/>
442-
}
443-
label={
444-
<Box sx={{ pt: 1 }}>
445-
<Typography>{t('Record participants separately')}</Typography>
446-
<Typography variant="body2" color="text.secondary">
447-
{t(
448-
"Save each participant's audio and video as its own file. Available with cloud recording only.",
449-
)}
450-
</Typography>
451-
</Box>
452-
}
437+
</Box>
438+
<Box
439+
sx={{
440+
border: '1px solid',
441+
borderColor: recordSeparately ? 'error.main' : 'divider',
442+
borderRadius: 2,
443+
p: 1,
444+
mb: 1.5,
445+
}}
446+
>
447+
<FormControlLabel
448+
sx={{ alignItems: 'flex-start', width: '100%', m: 0 }}
449+
control={
450+
<Checkbox
451+
checked={recordSeparately}
452+
onChange={(e) => setRecordSeparately(e.target.checked)}
453453
/>
454-
</>
455-
)}
454+
}
455+
label={
456+
<Box sx={{ pt: 1 }}>
457+
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
458+
<Typography fontWeight={600}>{t('Record participants separately')}</Typography>
459+
<Chip label={t('SERVER-SIDE')} size="small" />
460+
</Box>
461+
<Typography variant="body2" color="text.secondary">
462+
{t(
463+
"Records each participant's audio and video as an independent MP4 file, stored on Red5 Cloud.",
464+
)}
465+
</Typography>
466+
</Box>
467+
}
468+
/>
456469
</Box>
457470
<Box
458471
sx={{
@@ -491,7 +504,7 @@ function OptionButton(props: OptionButtonProps) {
491504
<Button
492505
onClick={handleRecordingConfirm}
493506
variant="contained"
494-
disabled={!serverSideRecordingChecked && !localRecordingChecked}
507+
disabled={!serverSideRecordingChecked && !recordSeparately && !localRecordingChecked}
495508
>
496509
{t('Start Recording')}
497510
</Button>

0 commit comments

Comments
 (0)