// Copyright 2017-2020 @polkadot/react-components authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import { ActionsProps, ColumnProps, ModalProps } from './types'; import React from 'react'; import SUIModal from 'semantic-ui-react/dist/commonjs/modules/Modal/Modal'; import Actions from './Actions'; import Column from './Column'; import Columns from './Columns'; type ModalType = React.FC & { Actions: React.FC; Column: React.FC; Columns: React.FC; Content: typeof SUIModal.Content; Header: typeof SUIModal.Header; Description: typeof SUIModal.Description; }; function ModalBase (props: ModalProps): React.ReactElement { const { children, className = '', header, open = true } = props; return ( {header && ( {header} )} {children} ); } const Modal = React.memo(ModalBase) as unknown as ModalType; Modal.Actions = Actions; Modal.Column = Column; Modal.Columns = Columns; Modal.Content = SUIModal.Content; Modal.Header = SUIModal.Header; Modal.Description = SUIModal.Description; export default Modal;