import React from 'react'; import { useNavigate } from 'react-router-dom'; import { Trans } from '@lingui/macro'; import Button from '@mui/material/Button'; import Grid from '@mui/material/Grid'; import Typography from '@mui/material/Typography'; import BoxText from '../BoxText'; import Checkbox from '../Checkbox'; function init(settings) { const initSettings = { enable: false, ...settings, }; return initSettings; } export default function Control(props) { const navigate = useNavigate(); const settings = init(props.settings); // Set the defaults React.useEffect(() => { props.onChange(settings, true); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const handleChange = (what) => (event) => { const value = event.target.value; if (['enable'].includes(what)) { settings[what] = !settings[what]; } else { settings[what] = value; } props.onChange(settings, false); }; return ( {props.enabled && ( Enable} checked={settings.enable} disabled={!props.enabled && settings.enable !== true} onChange={handleChange('enable')} /> Make the channel available as an RTMP stream (experimental). )} {!props.enabled && ( The RTMP output requires the RTMP Server. )} ); } Control.defaulProps = { settings: {}, enabled: false, onChange: function (settings, automatic) {}, };