diff --git a/webui/src/components/Shared/Confirm.js b/webui/src/components/Shared/Confirm.js
index 07ecb746ce..c5bcc01a0c 100644
--- a/webui/src/components/Shared/Confirm.js
+++ b/webui/src/components/Shared/Confirm.js
@@ -61,11 +61,13 @@ const Confirm = ({ visible, onOutside, message, buttons }) => {
Confirm.propTypes = {
visible: PropTypes.bool,
+ disabled: PropTypes.bool,
onOutside: PropTypes.func,
}
Confirm.defaultProps = {
visible: false,
+ disabled: true,
onOutside: () => {},
}
diff --git a/webui/src/containers/Subscriber/Collection.js b/webui/src/containers/Subscriber/Collection.js
index 06540f3a6a..af34730f48 100644
--- a/webui/src/containers/Subscriber/Collection.js
+++ b/webui/src/containers/Subscriber/Collection.js
@@ -26,6 +26,10 @@ class Collection extends Component {
action: '',
visible: false,
dimmed: false
+ },
+ confirm: {
+ visible: false,
+ imsi: ''
}
};
@@ -110,10 +114,30 @@ class Collection extends Component {
update: (imsi) => {
this.documentHandler.show('update', { imsi });
},
- delete: (imsi) => {
- const { dispatch } = this.props
- dispatch(deleteSubscriber(imsi));
- }
+ }
+ }
+
+ confirmHandler = {
+ show: (imsi) => {
+ this.setState({
+ confirm: {
+ visible: true,
+ imsi
+ }
+ })
+ },
+ hide: () => {
+ this.setState({
+ confirm: {
+ visible: false
+ }
+ })
+ },
+ delete: () => {
+ this.confirmHandler.hide();
+
+ const { dispatch } = this.props
+ dispatch(deleteSubscriber(this.state.confirm.imsi));
}
}
@@ -121,7 +145,8 @@ class Collection extends Component {
const {
handleSearchChange,
handleSearchClear,
- documentHandler
+ documentHandler,
+ confirmHandler
} = this;
const {
@@ -150,7 +175,7 @@ class Collection extends Component {
deletedImsi={status.id}
onShow={documentHandler.actions.browser}
onEdit={documentHandler.actions.update}
- onDelete={documentHandler.actions.delete}
+ onDelete={confirmHandler.show}
search={search}
/>
{isLoading && }
@@ -165,6 +190,14 @@ class Collection extends Component {
{ ...document }
onHide={documentHandler.hide} />
+
)
}