I would suggest at a high level this view should have an API like:

```js
// Show message
view.show(<message>, { persistent: <true|false> }); //=> Returns a message ID

// Clear message
view.clear(<message-id>);
```

Non persistent notifications should overwrite other non-persistent notifications, but temporarily replace 'persistent' notifications.

By passing back an ID, you give the callee the power to clear exact notification they want, a little like `setTimeout` and `clearTimeout`