Spaces:
Configuration error
Configuration error
| import { createPortal } from 'react-dom' | |
| import { useState, useEffect } from 'react' | |
| import PropTypes from 'prop-types' | |
| import { Button, Dialog, DialogActions, DialogContent, OutlinedInput, DialogTitle } from '@mui/material' | |
| import { StyledButton } from 'ui-component/button/StyledButton' | |
| const SaveChatflowDialog = ({ show, dialogProps, onCancel, onConfirm }) => { | |
| const portalElement = document.getElementById('portal') | |
| const [chatflowName, setChatflowName] = useState('') | |
| const [isReadyToSave, setIsReadyToSave] = useState(false) | |
| useEffect(() => { | |
| if (chatflowName) setIsReadyToSave(true) | |
| else setIsReadyToSave(false) | |
| }, [chatflowName]) | |
| const component = show ? ( | |
| <Dialog | |
| open={show} | |
| fullWidth | |
| maxWidth='xs' | |
| onClose={onCancel} | |
| aria-labelledby='alert-dialog-title' | |
| aria-describedby='alert-dialog-description' | |
| > | |
| <DialogTitle sx={{ fontSize: '1rem' }} id='alert-dialog-title'> | |
| {dialogProps.title} | |
| </DialogTitle> | |
| <DialogContent> | |
| <OutlinedInput | |
| sx={{ mt: 1 }} | |
| id='chatflow-name' | |
| type='text' | |
| fullWidth | |
| placeholder='My New Chatflow' | |
| value={chatflowName} | |
| onChange={(e) => setChatflowName(e.target.value)} | |
| /> | |
| </DialogContent> | |
| <DialogActions> | |
| <Button onClick={onCancel}>{dialogProps.cancelButtonName}</Button> | |
| <StyledButton disabled={!isReadyToSave} variant='contained' onClick={() => onConfirm(chatflowName)}> | |
| {dialogProps.confirmButtonName} | |
| </StyledButton> | |
| </DialogActions> | |
| </Dialog> | |
| ) : null | |
| return createPortal(component, portalElement) | |
| } | |
| SaveChatflowDialog.propTypes = { | |
| show: PropTypes.bool, | |
| dialogProps: PropTypes.object, | |
| onCancel: PropTypes.func, | |
| onConfirm: PropTypes.func | |
| } | |
| export default SaveChatflowDialog | |