summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/components/util/modals/Modal.js
blob: d457706243799f8959c7d49eb586248d5d74c9fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import React from 'react'
import PropTypes from 'prop-types'
import { Button, Modal as PModal, ModalVariant } from '@patternfly/react-core'

function Modal({ children, title, isOpen, onSubmit, onCancel, submitButtonType, submitButtonText }) {
    const actions = [
        <Button variant={submitButtonType} onClick={onSubmit} key="confirm">
            {submitButtonText}
        </Button>,
        <Button variant="link" onClick={onCancel} key="cancel">
            Cancel
        </Button>,
    ]

    return (
        <PModal variant={ModalVariant.small} isOpen={isOpen} onClose={onCancel} title={title} actions={actions}>
            {children}
        </PModal>
    )
}

Modal.propTypes = {
    title: PropTypes.string.isRequired,
    isOpen: PropTypes.bool,
    onSubmit: PropTypes.func.isRequired,
    onCancel: PropTypes.func.isRequired,
    submitButtonType: PropTypes.string,
    submitButtonText: PropTypes.string,
    children: PropTypes.node,
}

Modal.defaultProps = {
    submitButtonType: 'primary',
    submitButtonText: 'Save',
    isOpen: false,
}

export default Modal