import React, { useEffect } from 'react'; import { makeStyles, Theme, createStyles, Typography, Button, IconButton, Dialog, DialogActions, DialogContent, DialogTitle, } from '@material-ui/core'; import CloseIcon from '@material-ui/icons/Close'; import CachedIcon from '@material-ui/icons/Cached'; import ConditionGroup from './ConditionGroup'; import CopyBtn from './CopyButton'; import DialogTemplate from '../customDialog/DialogTemplate'; import { DialogProps } from './Types'; const AdvancedDialog = (props: DialogProps) => { const { open, onClose, onSubmit, onReset, onCancel, handleConditions, conditions: flatConditions, isLegal, expression: filterExpression, title, fields, ...others } = props; const { addCondition } = handleConditions; const classes = useStyles(); useEffect(() => { flatConditions.length === 0 && addCondition(); // Only need add one condition after dialog's first mount. // eslint-disable-next-line react-hooks/exhaustive-deps }, []); // const childRef: any = useRef(); return ( <> {/* {title} {`${isLegal ? filterExpression : 'Filter Expression'}`} {isLegal && ( )} Reset Cancel Apply Filters */} Reset } > {`${isLegal ? filterExpression : 'Filter Expression'}`} {isLegal && ( )} > ); }; AdvancedDialog.defaultProps = { open: false, onClose: () => {}, onSubmit: () => {}, title: 'Advanced Filter', fields: [], onReset: () => {}, onCancel: () => {}, handleConditions: {}, conditions: [], isLegal: false, expression: '', }; AdvancedDialog.displayName = 'AdvancedDialog'; const useStyles = makeStyles((theme: Theme) => createStyles({ root: {}, wrapper: { '& .disable-exp': { userSelect: 'none', color: '#AEAEBB', }, }, closeButton: { color: 'black', }, dialogTitle: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', }, dialogActions: { justifyContent: 'space-between', }, resetBtn: {}, cancelBtn: { marginRight: '32px', }, applyBtn: { backgroundColor: '#06AFF2', color: 'white', }, copyButton: { borderRadius: '0', }, expResult: { background: '#F9F9F9', borderRadius: '8px', display: 'flex', justifyContent: 'space-between', alignItems: 'center', minHeight: '40px', marginBottom: '16px', padding: '0 16px', fontFamily: 'Source Code Pro', fontStyle: 'normal', fontWeight: 'normal', fontSize: '16px', lineHeight: '24px', }, expWrapper: { background: '#F9F9F9', borderRadius: '8px', minWidth: '480px', minHeight: '104px', padding: '12px', }, }) ); export default AdvancedDialog;