From 5ee832b19505a4e8e5756660ce6ed03a7f18dec3 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Mon, 4 Nov 2019 12:55:05 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20New=20modal=20provider?= =?UTF-8?q?=20(#1110)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 🎸 New modal provider A new modal provider/context component to unify modal related code and simplify modal use Closes: #1086 * refactor(ModalContext): Keep current modal lib * Update modal provider version according to PR #1116 * Update modal provider props to use inner props * Add custom class prop * CR Update: Refactor provider to extract specific modal * Fix modal import * CR Update: Move from spread to object assign * CR Update: Add proptypes, use classnames dependency over interpolation and rename modal --- platform/ui/src/components/index.js | 2 + .../ui/src/components/ohifModal/OHIFModal.js | 60 ++++++++++++++ .../ohifModal/__docs__/ohifModal.mdx | 39 +++++++++ platform/ui/src/components/ohifModal/index.js | 2 + platform/ui/src/index.js | 11 +++ platform/ui/src/utils/ModalProvider.js | 83 +++++++++++++++++++ platform/viewer/src/App.js | 21 +++-- 7 files changed, 209 insertions(+), 9 deletions(-) create mode 100644 platform/ui/src/components/ohifModal/OHIFModal.js create mode 100644 platform/ui/src/components/ohifModal/__docs__/ohifModal.mdx create mode 100644 platform/ui/src/components/ohifModal/index.js create mode 100644 platform/ui/src/utils/ModalProvider.js diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js index 99d573cdd..11e21e9f1 100644 --- a/platform/ui/src/components/index.js +++ b/platform/ui/src/components/index.js @@ -16,6 +16,7 @@ import { QuickSwitch } from './quickSwitch'; import { RoundedButtonGroup } from './roundedButtonGroup'; import { SelectTree } from './selectTree'; import { SimpleDialog } from './simpleDialog'; +import { OHIFModal } from './ohifModal'; import { PageToolbar, StudyList, @@ -52,4 +53,5 @@ export { AboutModal, UserPreferences, UserPreferencesModal, + OHIFModal, }; diff --git a/platform/ui/src/components/ohifModal/OHIFModal.js b/platform/ui/src/components/ohifModal/OHIFModal.js new file mode 100644 index 000000000..f69c9376e --- /dev/null +++ b/platform/ui/src/components/ohifModal/OHIFModal.js @@ -0,0 +1,60 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ReactBootstrapModal from 'react-bootstrap-modal'; +import classNames from 'classnames'; + +const OHIFModal = ({ + className, + closeButton, + backdrop, + keyboard, + show, + title, + onHide, + footer: Footer, + header: Header, + children: Component, +}) => ( + + {(Header || title) && ( + + {title && ( + {title} + )} + {Header &&
} + + )} + + {Component && } + + {Footer && ( + + {' '} +