about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript/flavours/glitch/features/ui/containers/modal_container.js')
-rw-r--r--app/javascript/flavours/glitch/features/ui/containers/modal_container.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/features/ui/containers/modal_container.js b/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
new file mode 100644
index 000000000..560c34f01
--- /dev/null
+++ b/app/javascript/flavours/glitch/features/ui/containers/modal_container.js
@@ -0,0 +1,27 @@
+import { connect } from 'react-redux';
+import { openModal, closeModal } from 'flavours/glitch/actions/modal';
+import ModalRoot from '../components/modal_root';
+
+const mapStateToProps = state => ({
+  ignoreFocus: state.getIn(['modal', 'ignoreFocus']),
+  type: state.getIn(['modal', 'stack', 0, 'modalType'], null),
+  props: state.getIn(['modal', 'stack', 0, 'modalProps'], {}),
+});
+
+const mapDispatchToProps = dispatch => ({
+  onClose (confirmationMessage, ignoreFocus = false) {
+    if (confirmationMessage) {
+      dispatch(
+        openModal('CONFIRM', {
+          message: confirmationMessage.message,
+          confirm: confirmationMessage.confirm,
+          onConfirm: () => dispatch(closeModal(undefined, { ignoreFocus })),
+        }),
+      );
+    } else {
+      dispatch(closeModal(undefined, { ignoreFocus }));
+    }
+  },
+});
+
+export default connect(mapStateToProps, mapDispatchToProps)(ModalRoot);