withConfirmation &lt;Button /&gt;: 

```js
const B = withConfirmation(Button);

<B onClick={() => alert('Cool')}>Click me</B>
```

withConfirmation custom props: 

```js
const B = withConfirmation(Button);

<B message="Lorem ipsum dolor sit, amet consectetur adipisicing elit. Magnam, quidem...." noLabel="Cancel" yesLabel="Confirm" onClick={() => alert('Cool')}>Click me</B>
```

withConfirmation &lt;Button /&gt; async success: 

```js
const B = withConfirmation(Button);

<B onClick={() => new Promise(res => setTimeout(res, 1000))}>Click me</B>
```

withConfirmation &lt;Button /&gt; async fail: 

```js
const B = withConfirmation(Button);

<B onClick={() => new Promise((res, rej) => setTimeout(() => rej(new Error('Failed...')), 1000))}>Click me</B>
```

withConfirmation &lt;A /&gt;: 

```js
const Link = withConfirmation(A);

<Link href="javascript:alert('clicked');">Click me</Link>
```


