@empathyco/x-components
Version:
Empathy X Components
29 lines (18 loc) • 2.32 kB
Markdown
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [@empathyco/x-components](./x-components.md) > [useXBus](./x-components.usexbus.md)
## useXBus() function
Composable which injects the current location, returns the `on` and `emit` functions using the bus and applying component metadata. Also unsubscribe from events when components is unmounted.
**Signature:**
```typescript
export declare function useXBus(): {
on: <Event extends XEvent, Metadata extends boolean>(event: Event, withMetadata: Metadata) => {
subscribe: (callback: (payload: Metadata extends true ? SubjectPayload<EventPayload<XEventsTypes, Event>, WireMetadata> : EventPayload<XEventsTypes, Event>) => void) => void;
};
emit: <Event extends XEvent>(event: Event, payload?: XEventPayload<Event>, metadata?: Omit<WireMetadata, "moduleName">) => Promise<import("../x-bus").EmittedData<XEventsTypes, Event, WireMetadata>>;
};
```
**Returns:**
{ on: <Event extends [XEvent](./x-components.xevent.md)<!-- -->, Metadata extends boolean>(event: Event, withMetadata: Metadata) => { subscribe: (callback: (payload: Metadata extends true ? [SubjectPayload](./x-components.subjectpayload.md)<!-- --><[EventPayload](./x-components.eventpayload.md)<!-- --><[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event>, [WireMetadata](./x-components.wiremetadata.md)<!-- -->> : [EventPayload](./x-components.eventpayload.md)<!-- --><[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event>) => void) => void; }; emit: <Event extends [XEvent](./x-components.xevent.md)<!-- -->>(event: Event, payload?: [XEventPayload](./x-components.xeventpayload.md)<!-- --><Event>, metadata?: Omit<[WireMetadata](./x-components.wiremetadata.md)<!-- -->, "moduleName">) => Promise<import("../x-bus").[EmittedData](./x-components.emitteddata.md)<!-- --><[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event, [WireMetadata](./x-components.wiremetadata.md)<!-- -->>>; }
An object with the `on` and `emit` functions.
## Remarks
This composable tries to use the `XPlugin` bus and catches the exception thrown by the `XPlugin` if it was not instantiated and uses the default `xBus` as fallback.