in src/components/ExportScriptFlyout/Flyout.tsx [45:76]
export function ExportScriptFlyout({ setVisible, steps }: IExportScriptFlyout) {
const [code, setCode] = useState('');
const { electronAPI } = useContext(CommunicationContext);
const [exportAsProject, setExportAsProject] = useState(false);
const type: JourneyType = exportAsProject ? 'project' : 'inline';
const maxLineSize = useMemo(
// get max line size in code string
() => code.split('\n').reduce((prev, cur) => Math.max(prev, cur.length), 0),
[code]
);
useEffect(() => {
(async function getCode() {
const codeFromActions = await getCodeFromActions(electronAPI, steps, type);
setCode(codeFromActions);
})();
}, [electronAPI, steps, setCode, type]);
return (
<EuiFlyout
aria-labelledby={FLYOUT_ID}
onClose={() => setVisible(false)}
size={maxLineSize > LARGE_FLYOUT_SIZE_LINE_LENGTH ? 'l' : 'm'}
>
<Header headerText="Journey code" id={FLYOUT_ID} />
<Body code={code} exportAsProject={exportAsProject} setExportAsProject={setExportAsProject} />
<Footer setVisible={setVisible} type={type} />
</EuiFlyout>
);
}