open-consul/ui-v2/app/components/event-source
John Cowen 8cb402eae7
ui: Move routes to use data-sources (#8321)
* Add uri identifiers to all data source things and make them the same

1. Add uri identitifer to data-source service
2. Make <EventSource /> and <DataSource /> as close as possible
3. Add extra `.closed` method to get a list of inactive/closed/closing
data-sources from elsewhere

* Make the connections cleanup the least worst connection when required

* Pass the uri/request id through all the things

* Better user erroring

* Make event sources close on error

* Allow <DataLoader /> data slot to be configurable

* Allow the <DataWriter /> removed state to be configurable

* Don't error if meta is undefined

* Stitch together all the repositories into the data-source/sink

* Use data.source over repositories

* Add missing  <EventSource /> components

* Fix up the views/templates

* Disable all the old route based blocking query things

* We still need the repo for the mixin for the moment

* Don't default to default, default != ''
2020-07-17 14:42:45 +01:00
..
index.hbs ui: Move routes to use data-sources (#8321) 2020-07-17 14:42:45 +01:00
index.js ui: Move routes to use data-sources (#8321) 2020-07-17 14:42:45 +01:00
README.mdx ui: Remove WithEventSource mixin, use a component instead (#7953) 2020-06-17 14:19:50 +01:00

## 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)

---