UNPKG

@empathyco/x-components

Version:
29 lines (18 loc) 2.29 kB
<!-- Do not edit this file. It is automatically generated by API Documenter. --> [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [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_1 extends keyof XEventsTypes, Metadata extends boolean>(event: Event_1, withMetadata: Metadata) => { subscribe: (callback: (payload: Metadata extends true ? SubjectPayload<EventPayload<XEventsTypes, Event_1>, WireMetadata> : EventPayload<XEventsTypes, Event_1>) => void) => void; }; emit: <Event_2 extends keyof XEventsTypes>(event: Event_2, payload?: XEventPayload<Event_2> | undefined, metadata?: Omit<WireMetadata, 'moduleName'>) => Promise<import("@empathyco/x-bus").EmittedData<XEventsTypes, Event_2, WireMetadata>>; }; ``` **Returns:** { on: &lt;Event\_1 extends keyof [XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Metadata extends boolean&gt;(event: Event\_1, withMetadata: Metadata) =&gt; { subscribe: (callback: (payload: Metadata extends true ? SubjectPayload&lt;EventPayload&lt;[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event\_1&gt;, [WireMetadata](./x-components.wiremetadata.md)<!-- -->&gt; : EventPayload&lt;[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event\_1&gt;) =&gt; void) =&gt; void; }; emit: &lt;Event\_2 extends keyof [XEventsTypes](./x-components.xeventstypes.md)<!-- -->&gt;(event: Event\_2, payload?: [XEventPayload](./x-components.xeventpayload.md)<!-- -->&lt;Event\_2&gt; \| undefined, metadata?: Omit&lt;[WireMetadata](./x-components.wiremetadata.md)<!-- -->, 'moduleName'&gt;) =&gt; Promise&lt;import("@empathyco/x-bus").EmittedData&lt;[XEventsTypes](./x-components.xeventstypes.md)<!-- -->, Event\_2, [WireMetadata](./x-components.wiremetadata.md)<!-- -->&gt;&gt;; } 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.