diff --git a/ui/src/admin/components/DeleteRow.js b/ui/src/admin/components/DeleteRow.js
new file mode 100644
index 0000000000..8894fefbd8
--- /dev/null
+++ b/ui/src/admin/components/DeleteRow.js
@@ -0,0 +1,87 @@
+import React, {PropTypes, Component} from 'react'
+
+const DeleteButton = ({onConfirm}) => (
+
+)
+
+const ConfirmButtons = ({onDelete, item, onCancel}) => (
+
+
+
+
+)
+
+class DeleteRow extends Component {
+ constructor(props) {
+ super(props)
+ this.state = {
+ isConfirmed: false,
+ }
+ this.handleConfirm = ::this.handleConfirm
+ this.handleCancel = ::this.handleCancel
+ }
+
+ handleConfirm() {
+ this.setState({isConfirmed: true})
+ }
+
+ handleCancel() {
+ this.setState({isConfirmed: false})
+ }
+
+ render() {
+ const {onDelete, item} = this.props
+ const {isConfirmed} = this.state
+
+ if (isConfirmed) {
+ return (
+
+ )
+ }
+
+ return (
+
+ )
+ }
+}
+
+const {
+ func,
+ shape,
+} = PropTypes
+
+DeleteButton.propTypes = {
+ onConfirm: func.isRequired,
+}
+
+ConfirmButtons.propTypes = {
+ onDelete: func.isRequired,
+ item: shape({}).isRequired,
+ onCancel: func.isRequired,
+}
+
+DeleteRow.propTypes = {
+ item: shape({}),
+ onDelete: func.isRequired,
+}
+
+export default DeleteRow
diff --git a/ui/src/admin/components/RoleRow.js b/ui/src/admin/components/RoleRow.js
index cd6cbff70a..2018018473 100644
--- a/ui/src/admin/components/RoleRow.js
+++ b/ui/src/admin/components/RoleRow.js
@@ -2,6 +2,7 @@ import React, {PropTypes} from 'react'
import _ from 'lodash'
import MultiSelectDropdown from 'shared/components/MultiSelectDropdown'
+import DeleteRow from 'src/admin/components/DeleteRow'
const PERMISSIONS = [
"NoPermissions",
@@ -51,12 +52,7 @@ const RoleRow = ({role: {name, permissions, users}, role, onDelete}) => (
}
-
+
|
)
diff --git a/ui/src/admin/components/UserRow.js b/ui/src/admin/components/UserRow.js
index 915b6060bc..a281bc71a6 100644
--- a/ui/src/admin/components/UserRow.js
+++ b/ui/src/admin/components/UserRow.js
@@ -1,5 +1,6 @@
import React, {PropTypes} from 'react'
import MultiSelectDropdown from 'shared/components/MultiSelectDropdown'
+import DeleteRow from 'src/admin/components/DeleteRow'
const UserRow = ({user: {name, roles, permissions}, user, onDelete}) => (
@@ -27,12 +28,7 @@ const UserRow = ({user: {name, roles, permissions}, user, onDelete}) => (
}
-
+
|
)