diff --git a/js/components/ascribe_buttons/delete_button.js b/js/components/ascribe_buttons/delete_button.js
index a60344df..966154bc 100644
--- a/js/components/ascribe_buttons/delete_button.js
+++ b/js/components/ascribe_buttons/delete_button.js
@@ -11,10 +11,10 @@ import PieceDeleteForm from '../ascribe_forms/form_delete_piece';
import EditionRemoveFromCollectionForm from '../ascribe_forms/form_remove_editions_from_collection';
import PieceRemoveFromCollectionForm from '../ascribe_forms/form_remove_piece_from_collection';
-import ModalWrapper from '../ascribe_modal/modal_wrapper';
+import AscribeModal from '../ascribe_modal/ascribe_modal';
import { getAvailableAcls } from '../../utils/acl_utils';
-import { getLangText } from '../../utils/lang_utils.js';
+import { getLangText } from '../../utils/lang_utils';
let DeleteButton = React.createClass({
@@ -66,12 +66,11 @@ let DeleteButton = React.createClass({
return null;
}
return (
-
{content}
-
+
);
}
});
diff --git a/js/components/ascribe_modal/ascribe_modal.js b/js/components/ascribe_modal/ascribe_modal.js
new file mode 100644
index 00000000..d2a55228
--- /dev/null
+++ b/js/components/ascribe_modal/ascribe_modal.js
@@ -0,0 +1,63 @@
+'use strict';
+
+import React from 'react';
+
+import Modal from 'react-bootstrap/lib/Modal';
+
+let AscribeModal = React.createClass({
+
+ propTypes: {
+ trigger: React.PropTypes.element.isRequired,
+ title: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element,
+ React.PropTypes.string
+ ]).isRequired,
+ children: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element
+ ]).isRequired,
+ footer: React.PropTypes.oneOfType([
+ React.PropTypes.arrayOf(React.PropTypes.element),
+ React.PropTypes.element,
+ React.PropTypes.string
+ ]).isRequired
+ },
+
+ getInitialState(){
+ return {
+ modalBody: null
+ };
+ },
+
+ close() {
+ this.setState({ showModal: false });
+ },
+
+ open() {
+ this.setState({ showModal: true });
+ },
+
+ render() {
+
+ let trigger = React.cloneElement(this.props.trigger, {onClick: this.open});
+
+ return (
+
+ {trigger}
+
+
+
+ {this.props.title}
+
+
+
+ {this.props.children}
+
+
+
+ );
+ }
+});
+
+export default AscribeModal;
\ No newline at end of file
diff --git a/js/components/ascribe_modal/modal_wrapper.js b/js/components/ascribe_modal/modal_wrapper.js
index a8f7b182..a7155e74 100644
--- a/js/components/ascribe_modal/modal_wrapper.js
+++ b/js/components/ascribe_modal/modal_wrapper.js
@@ -5,7 +5,6 @@ import ReactAddons from 'react/addons';
import Modal from 'react-bootstrap/lib/Modal';
import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger';
-import ModalTrigger from 'react-bootstrap/lib/ModalTrigger';
import Tooltip from 'react-bootstrap/lib/Tooltip';
import ModalMixin from '../../mixins/modal_mixin';
@@ -22,15 +21,11 @@ let ModalWrapper = React.createClass({
getModalTrigger() {
return (
-
- {this.props.children}
-
- }>
- {this.props.button}
-
+
+ {this.props.children}
+
);
},
diff --git a/package.json b/package.json
index 4fdf87fb..0fc9844f 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
"q": "^1.4.1",
"raven-js": "^1.1.19",
"react": "^0.13.2",
- "react-bootstrap": "~0.22.6",
+ "react-bootstrap": "^0.24.3",
"react-datepicker": "~0.8.0",
"react-progressbar": "^1.1.0",
"react-router": "^0.13.3",