UNPKG

storybook-addon-custom-event-broadcaster

Version:
84 lines (64 loc) 2.5 kB
# storybook-addon-custom-event-broadcaster Custom panel tab to send custom events to components. This addon adds a tab to the addon panel. It has a set of input fields. The input of these fields are used to create a [custom event](https://developer.mozilla.org/en-US/docs/Web/Events/Creating_and_triggering_events). | Input | functionality | | ------------- | :-------------------------------------------------: | | EventName | Name of the event | | Data | custom data, to be send in the event | | Selector | the selector of the node the event will be fired on | | "send"-Button | Push to send the event | #### Install ```bash npm install storybook-addon-custom-event-broadcaster ``` Add the addon to the storybook configuration: ```bash // .storybook/main.js module.exports = { ... addons: [ ... 'storybook-addon-custom-event-broadcaster', ], }; ``` #### Configuration in your story To configure your story you need to add an _customEventPanel_-object to the parameters section. it has one required parameter _eventName_ and two optional parameters _eventData_,_selector_. It is analogous to the three input fields. If the _selector_-field is empty, the event will be fired on the document-object of the page. if it is filled it will fire the event on the selected node. ```js // \*.stories.jsx // example configuration of 3 lines export default { title: 'Content/MyStory', parameters: { customEventPanel: [ { eventName: 'event:example', }, { eventName: 'my:event', eventData: { opt: 23, }, selector: '.selector', }, { eventName: 'my:otherevent', eventData: { foo: 23, }, }, ], }, argTypes: {}, }; ``` #### Plugin in Action ![usage example](./usage_example.gif 'Usage Example') I have a example project using this addon on https://github.com/derKuba/stenciljs-tutorial/tree/main/component-lib. #### Development scripts - `npm start` runs babel in watch mode and starts Storybook - `npm run build` build and package your addon code ##### Switch from TypeScript to JavaScript Don't want to use TypeScript? We offer a handy eject command: `npm run eject-ts` This will convert all code to JS. It is a destructive process, so we recommended running this before you start writing any code.