Popconfirm
A simple and compact confirmation dialog of an action.
When To Use#
A simple and compact dialog used for asking for user confirmation.
The difference with the confirm
modal dialog is that it's more lightweight than the static popped full-screen confirm modal.
Examples
import { Popconfirm, message } from 'antd';
function confirm(e) {
console.log(e);
message.success('Click on Yes');
}
function cancel(e) {
console.log(e);
message.error('Click on No');
}
ReactDOM.render(
<Popconfirm title="Are you sure delete this task?" onConfirm={confirm} onCancel={cancel} okText="Yes" cancelText="No">
<a href="#">Delete</a>
</Popconfirm>
, mountNode);
import { Popconfirm, message, Button } from 'antd';
const text = 'Are you sure delete this task?';
function confirm() {
message.info('Click on Yes.');
}
ReactDOM.render(<div className="demo">
<div style={{ marginLeft: 70, whiteSpace: 'nowrap' }}>
<Popconfirm placement="topLeft" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>TL</Button>
</Popconfirm>
<Popconfirm placement="top" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>Top</Button>
</Popconfirm>
<Popconfirm placement="topRight" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>TR</Button>
</Popconfirm>
</div>
<div style={{ width: 70, float: 'left' }}>
<Popconfirm placement="leftTop" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>LT</Button>
</Popconfirm>
<Popconfirm placement="left" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>Left</Button>
</Popconfirm>
<Popconfirm placement="leftBottom" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>LB</Button>
</Popconfirm>
</div>
<div style={{ width: 70, marginLeft: 304 }}>
<Popconfirm placement="rightTop" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>RT</Button>
</Popconfirm>
<Popconfirm placement="right" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>Right</Button>
</Popconfirm>
<Popconfirm placement="rightBottom" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>RB</Button>
</Popconfirm>
</div>
<div style={{ marginLeft: 70, clear: 'both', whiteSpace: 'nowrap' }}>
<Popconfirm placement="bottomLeft" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>BL</Button>
</Popconfirm>
<Popconfirm placement="bottom" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>Bottom</Button>
</Popconfirm>
<Popconfirm placement="bottomRight" title={text} onConfirm={confirm} okText="Yes" cancelText="No">
<Button>BR</Button>
</Popconfirm>
</div>
</div>, mountNode);
import { Popconfirm } from 'antd';
ReactDOM.render(
<Popconfirm title="Are you sure?" okText="Yes" cancelText="No">
<a href="#">Delete</a>
</Popconfirm>
, mountNode);
import { Popconfirm, Switch, message } from 'antd';
class App extends React.Component {
state = {
visible: false,
condition: true, // Whether meet the condition, if not show popconfirm.
}
changeCondition = (value) => {
this.setState({ condition: value });
}
confirm = () => {
this.setState({ visible: false });
message.success('Next step.');
}
cancel = () => {
this.setState({ visible: false });
message.error('Click on cancel.');
}
handleVisibleChange = (visible) => {
if (!visible) {
this.setState({ visible });
return;
}
// Determining condition before show the popconfirm.
console.log(this.state.condition);
if (this.state.condition) {
this.confirm(); // next step
} else {
this.setState({ visible }); // show the popconfirm
}
}
render() {
return (
<div>
<Popconfirm
title="Are you sure delete this task?"
visible={this.state.visible}
onVisibleChange={this.handleVisibleChange}
onConfirm={this.confirm}
onCancel={this.cancel}
okText="Yes"
cancelText="No"
>
<a href="#">Delete a task</a>
</Popconfirm>
<br />
<br />
Whether directly execute:<Switch defaultChecked onChange={this.changeCondition} />
</div>
);
}
}
ReactDOM.render(<App />, mountNode);
API#
Param | Description | Type | Default value |
---|---|---|---|
title | title of the confirmation box | string|ReactNode | - |
onConfirm | callback of confirmation | function(e) | - |
onCancel | callback of cancel | function(e) | - |
okText | text of the Confirm button | string | Confirm |
okType | Button type of the Confirm button | string | primary |
cancelText | text of the Cancel button | string | Cancel |
Consult Tooltip's documentation to find more APIs.
Note#
Please ensure that the child node of Popconfirm
accepts onMouseEnter
, onMouseLeave
, onFocus
, onClick
events.