import './ErrorModal.styles.scss'; import { Color } from '@signozhq/design-tokens'; import { Button, Modal, Tag } from 'antd'; import { CircleAlert, X } from 'lucide-react'; import KeyValueLabel from 'periscope/components/KeyValueLabel'; import { useAppContext } from 'providers/App/App'; import React from 'react'; import APIError from 'types/api/error'; import ErrorContent from './components/ErrorContent'; type Props = { error: APIError; triggerComponent?: React.ReactElement; onClose?: () => void; open?: boolean; }; const classNames = { body: 'error-modal__body', mask: 'error-modal__mask', header: 'error-modal__header', footer: 'error-modal__footer', content: 'error-modal__content', }; function ErrorModal({ open, error, triggerComponent, onClose, }: Props): JSX.Element { const [visible, setVisible] = React.useState(open); const handleClose = (): void => { setVisible(false); onClose?.(); }; const { versionData } = useAppContext(); const versionDataPayload = versionData; return ( <> {!triggerComponent ? ( } color="error" onClick={(): void => setVisible(true)} > error ) : ( React.cloneElement(triggerComponent, { onClick: () => setVisible(true), }) )} } title={ <> {versionDataPayload ? ( ) : (
)} } onCancel={handleClose} closeIcon={false} classNames={classNames} wrapClassName="error-modal__wrap" > ); } ErrorModal.defaultProps = { onClose: undefined, triggerComponent: null, open: false, }; export default ErrorModal;