consul/ui-v2/app/components/event-source
John Cowen 2b0b1e61d2 ui: Remove WithEventSource mixin, use a component instead (#7953)
The WithEventSource mixin was responsible for catching EventSource
errors and cleaning up events sources then the user left a Controller.

As we are trying to avoid mixin usage, we moved this all to an
`EventSource` component, which can clean up when the component is
removed from the page, and also fires an onerror event.

Moving to a component firing an onerror event means we can also remove
all of our custom computed property work that we were using previously
to catch errors (thrown when a service etc. is removed)
2020-06-17 13:20:42 +00:00
..
README.mdx ui: Remove WithEventSource mixin, use a component instead (#7953) 2020-06-17 13:20:42 +00:00
index.js ui: Remove WithEventSource mixin, use a component instead (#7953) 2020-06-17 13:20:42 +00:00

README.mdx

## EventSource

```handlebars
<EventSource
  @src={{eventSourceObject}}
  @onerror={{action 'error'}}
/>
```

### Arguments

| Argument | Type | Default | Description |
| --- | --- | --- | --- |
| `src` | `EventSourceProxy` | | An EventSource object |
| `onerror` | `Function` |  | The action to fire when an error occurs. Emits ErrorEvent object with an `error` property containing the Error. |
| `closeOnDestroy` | `Boolean` | true | Whether to close and destroy the event source when the component is destroyed |

This component is used to configure event source error from within a template, but also ensures that EventSources are cleaned/up destroyed when the user leaves the page (when the component is removed from the page)

### See

- [Component Source Code](./index.js)
- [Template Source Code](./index.hbs)

---