1. storybook-rtl-addon
Toggle between ltr-rtl
storybook-rtl-addon
Package: storybook-rtl-addon
Created by: ccpu
Last modified: Wed, 18 May 2022 19:13:36 GMT
Version: 0.3.3
License: MIT
Downloads: 22,916
Repository: https://github.com/ccpu/storybook-rtl-addon

Install

npm install storybook-rtl-addon
yarn add storybook-rtl-addon

storybook-rtl-addon

A storybook addons that lets your users toggle between ltr and rtl.

Example

Installation

Install the following npm module:

 npm i --save-dev storybook-rtl-addon

or with yarn:

 yarn add -D storybook-rtl-addon

Then, add following content to .storybook/main.js

 module.exports = {
  stories: ['../**/*.stories.[tj]sx'],
  addons: ['storybook-rtl-addon'],
};

Story integration

Use hook to get current direction:

 import { useDirection } from 'storybook-rtl-addon';

function MyComponent(context) {
  const direction = useDirection(context);
  return <div dir={direction}>{children}</div>;
}

Or use it by addDecorator:

 import { addDecorator } from '@storybook/react';
import { withDirection } from 'storybook-rtl-addon';

addDecorator(withDirection);

You can also listen for the direction change event as follow:

 import addons from '@storybook/addons';
import { Direction_MODE_EVENT_NAME } from 'storybook-rtl-addon';

// get channel to listen to event emitter
const channel = addons.getChannel();

// create a component that listens for the event change
function MyComponent({ children }) {
  // this example uses hook but you can also use class component as well
  const [direction, setDirection] = useState();

  useEffect(() => {
    // listen to direction change
    channel.on(Direction_MODE_EVENT_NAME, setDirection);
    return () => channel.off(Direction_MODE_EVENT_NAME, setDirection);
  }, [channel, setDirection]);

  return <div dir={direction}>{children}</div>;
}

Options

  • setDirectionKnob

setDirectionKnob

When set to true the knob-direction will be set

 // preview.js
export const parameters = {
  setLocaleToKnob: true,
};

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin