public/video-ui/src/components/DeleteButton.jsx (51 lines of code) (raw):
import React from 'react';
import PropTypes from 'prop-types';
import ReactTooltip from 'react-tooltip';
import Icon from './Icon';
export default class DeleteButton extends React.Component {
static propTypes = {
tooltip: PropTypes.string.isRequired,
onDelete: PropTypes.func.isRequired
};
state = {
confirmDelete: false
};
changeState() {
this.setState({ confirmDelete: true });
setTimeout(() => {
this.setState({ confirmDelete: false });
}, 2000);
}
renderConfirmDelete() {
return (
<button
className="btn button__secondary--remove-confirm"
onClick={this.props.onDelete}
data-tip="Confirm delete. This cannot be undone."
>
<Icon icon="delete_forever">Confirm delete</Icon>
</button>
);
}
renderDelete() {
return (
<button
className="btn button__secondary--remove"
onClick={() => this.changeState()}
data-tip={this.props.tooltip}
>
<Icon icon="delete">Delete</Icon>
</button>
);
}
render() {
return (
<span className="margin-left">
<ReactTooltip />
{this.state.confirmDelete
? this.renderConfirmDelete()
: this.renderDelete()}
</span>
);
}
}