import TabUnselectedIcon from '@mui/icons-material/TabUnselected'
import Box from '@mui/material/Box'
import TextField from '@mui/material/TextField'
import Typography from '@mui/material/Typography'
import React, { useContext } from 'react'
import { Checkbox, Tooltip } from '@mui/material'
import { context } from 'browser/contexts/session'
import languageMap from 'browser/I18N/keys'
import { FormattedMessage } from 'react-intl'
const {
state: { set },
} = window.sideAPI
const fieldStyle = { width: 60 }
const inputProps = {
sx: {
paddingLeft: 0.5,
paddingRight: 0.5,
},
}
const PlaybackDimensionControls: React.FC = () => {
const session = useContext(context)
const [panelWidth, setPanelWidth] = React.useState(0)
const [panelHeight, setPanelHeight] = React.useState(0)
const { active, width, height } = session.state.editor.overrideWindowSize
React.useEffect(() => {
if (active) {
return
}
const playbackPanel = document.querySelector(
'[data-panel-id="playback-panel"]'
)!
const observer = new ResizeObserver((entries) => {
for (let entry of entries) {
const { width, height } = entry.contentRect
setPanelWidth(Math.round(width))
setPanelHeight(Math.round(height))
}
})
observer.observe(playbackPanel)
return () => observer.disconnect()
}, [active])
return (
<>
}
>
set('editor.overrideWindowSize', {
active: !active,
width: panelWidth,
height: panelHeight,
})
}
>
{
const val = Number(e.target.value)
if (!isNaN(val)) {
set('editor.overrideWindowSize.width', val)
}
}}
margin="none"
size="small"
sx={fieldStyle}
value={active ? width : panelWidth}
/>
{
const val = Number(e.target.value)
if (!isNaN(val)) {
set('editor.overrideWindowSize.height', val)
}
}}
margin="none"
size="small"
sx={fieldStyle}
value={active ? height : panelHeight}
/>
>
)
}
export default PlaybackDimensionControls