3.40.28 • Published 3 days ago

@tramvai/storybook-addon v3.40.28

Weekly downloads
-
License
-
Repository
github
Last release
3 days ago

@tramvai/storybook-addon

Storybook addon for tramvai apps

Installation

You need to install @tramvai/storybook-addon:

npm install @tramvai/storybook-addon

And connect addon in the storybook configuration file:

module.exports = {
  addons: ["@tramvai/storybook-addon"]
}

Features

  • Providers for DI container
  • Providers for router
  • Providers for react-query
  • Page actions support
  • tramvai babel configuration
  • tramvai postcss configuration

How to

Access to DI container

import { LOGGER_TOKEN } from '@tramvai/tokens-common';

export const Page = () => {
  const logger = useDi(LOGGER_TOKEN);

  logger.info('render');

  return (
    <h1>Page</h1>
  );
}
import type { TramvaiStoriesParameters } from '@tramvai/storybook-addon';
import { Page } from './page';

// You can pass to DI container any reducers, providers and modules
const parameters: TramvaiStoriesParameters = {
  tramvai: {
    stores: [],
    initialState: {},
    providers: [],
    modules: [],
  },
};

export default {
  title: 'Page',
  component: Page,
  parameters,
};

export const PageStory = () => <Page />;

Router hooks and components

import { Link, useUrl } from '@tramvai/module-router';

export const Page = () => {
  const url = useUrl();

  return (
    <>
      <h1>Page at {url.pathname}</h1>
      <p>
        <Link url="/third/">to third page</Link>
      </p>
    </>
  );
}
import type { TramvaiStoriesParameters } from '@tramvai/storybook-addon';
import { Page } from './page';

// You can pass to router current route and url
const parameters: TramvaiStoriesParameters = {
  tramvai: {
    currentRoute: { name: 'second', path: '/second/' },
  },
};

export default {
  title: 'Page',
  component: Page,
  parameters,
};

export const PageStory = () => <Page />;

React Query

import { createQuery, useQuery } from '@tramvai/react-query';


const query = createQuery({
  key: 'base',
  fn: async () => {
    return { foo: 'bar' };
  },
});

export const Page = () => {
  const { data, isLoading } = useQuery(query);

  return (
    <>
      <h1>Page</h1>
      <p>
        {isLoading ? 'Loading...' : data.foo}
      </p>
    </>
  );
}
import type { TramvaiStoriesParameters } from '@tramvai/storybook-addon';
import { Page } from './page';

// You can pass to router QueryClient default options
const parameters: TramvaiStoriesParameters = {
  tramvai: {
    reactQueryDefaultOptions: {
      queries: {
        refetchOnMount: false,
        refetchOnReconnect: false,
        refetchOnWindowFocus: false,
      },
    },
  },
};

export default {
  title: 'Page',
  component: Page,
  parameters,
};

export const PageStory = () => <Page />;

Page actions running

import { createAction } from '@tramvai/core';

const serverAction = createAction({
  name: 'server-action',
  fn() {
    console.log('server action');
  },
  conditions: {
    onlyServer: true,
  },
});

const browserAction = createAction({
  name: 'browser-action',
  fn() {
    console.log('browser action');
  },
  conditions: {
    onlyBrowser: true,
  },
});

export const Page = () => {
  return (
    <h1>Page</h1>
  );
}

Page.actions = [serverAction, browserAction];
import type { TramvaiStoriesParameters } from '@tramvai/storybook-addon';
import { Page } from './page';

// Actions with `onlyBrowser` condition will be executed 
const parameters: TramvaiStoriesParameters = {
  tramvai: {
    actions: Page.actions,
  },
};

export default {
  title: 'Page',
  component: Page,
  parameters,
};

export const PageStory = () => <Page />;

Http clients with real requests

import { createAction } from '@tramvai/core';

const httpRequestAction = createAction({
  name: 'http-request-action',
  fn: async (_, __, { httpClient }) => {
    return httpClient.get('/');
  },
  deps: {
    httpClient: HTTP_CLIENT,
  },
});

export const Page = () => {
  return (
    <h1>Page</h1>
  );
}

Page.actions = [httpRequestAction];
import { HttpClientModule } from '@tramvai/module-http-client';
import type { TramvaiStoriesParameters } from '@tramvai/storybook-addon';
import { Page } from './page';

// HttpClientModule is required for real requests
const parameters: TramvaiStoriesParameters = {
  tramvai: {
    actions: Page.actions,
    modules: [HttpClientModule],
  },
};

export default {
  title: 'Page',
  component: Page,
  parameters,
};

export const PageStory = () => <Page />;
4.9.1

3 days ago

4.9.0

9 days ago

4.8.6

14 days ago

3.40.28

14 days ago

4.8.4

14 days ago

4.8.3

15 days ago

3.40.26

14 days ago

3.40.25

15 days ago

4.7.1

18 days ago

3.40.21

18 days ago

4.7.0

19 days ago

3.40.20

19 days ago

4.4.6

23 days ago

3.40.17

23 days ago

4.4.5

24 days ago

4.4.4

24 days ago

3.40.16

24 days ago

4.4.1

25 days ago

4.4.3

25 days ago

3.40.14

25 days ago

3.40.13

25 days ago

4.3.1

26 days ago

3.40.11

26 days ago

4.3.0

28 days ago

3.40.6

30 days ago

3.40.7

30 days ago

4.2.1

30 days ago

4.2.0

30 days ago

4.1.0

1 month ago

4.0.6

1 month ago

3.40.5

1 month ago

4.0.5

1 month ago

4.0.4

1 month ago

3.40.4

1 month ago

3.38.0

2 months ago

3.37.10

2 months ago

3.37.8

2 months ago

3.37.7

2 months ago

3.37.5

2 months ago

3.37.1

2 months ago

3.34.0

3 months ago

3.33.2

3 months ago

3.33.0

3 months ago

3.32.3

3 months ago

3.31.0

4 months ago

3.31.2

4 months ago

3.31.3

4 months ago

3.30.1

4 months ago

3.27.5

4 months ago

3.27.3

4 months ago

3.27.4

4 months ago

3.27.0

4 months ago

3.26.3

4 months ago

3.26.2

4 months ago

3.25.5

4 months ago

3.25.6

4 months ago

3.25.3

4 months ago

3.25.2

4 months ago

3.24.3

5 months ago

3.25.0

5 months ago

3.24.1

5 months ago

3.24.0

5 months ago

3.23.0

5 months ago

3.21.0

5 months ago

3.19.0

5 months ago

3.19.1

5 months ago

3.17.0

5 months ago

3.12.0

5 months ago

3.14.1

5 months ago

3.14.0

5 months ago

2.160.25

5 months ago

3.13.0

5 months ago

3.10.2

6 months ago

3.11.0

6 months ago

3.15.1

5 months ago

3.16.0

5 months ago

2.142.1

8 months ago

2.142.0

8 months ago

2.139.3

8 months ago

2.139.2

8 months ago

3.2.0

7 months ago

2.154.0

7 months ago

2.149.0

8 months ago

2.149.1

8 months ago

2.141.2

8 months ago

2.141.1

8 months ago

2.130.9

9 months ago

2.130.7

9 months ago

2.130.6

9 months ago

2.153.3

7 months ago

2.160.21

6 months ago

2.130.4

9 months ago

2.153.1

7 months ago

2.153.2

7 months ago

2.153.0

7 months ago

2.160.12

6 months ago

2.160.17

6 months ago

2.160.19

6 months ago

2.160.10

6 months ago

2.121.2

10 months ago

3.9.1

6 months ago

3.9.0

6 months ago

2.118.1

10 months ago

3.0.2

7 months ago

2.133.5

9 months ago

2.133.4

9 months ago

3.10.0

6 months ago

2.133.2

9 months ago

2.156.1

7 months ago

2.133.0

9 months ago

3.0.0

7 months ago

2.143.0

8 months ago

2.143.1

8 months ago

2.120.0

10 months ago

2.130.10

9 months ago

2.117.4

10 months ago

2.130.11

9 months ago

2.117.2

10 months ago

2.117.0

10 months ago

3.7.0

6 months ago

2.132.1

9 months ago

2.155.0

7 months ago

2.132.0

9 months ago

2.123.4

10 months ago

2.146.1

8 months ago

2.123.3

10 months ago

2.123.2

10 months ago

2.123.1

10 months ago

2.146.0

8 months ago

2.150.0

8 months ago

2.150.1

8 months ago

2.145.0

8 months ago

2.145.1

8 months ago

2.160.4

7 months ago

2.122.0

10 months ago

2.160.2

7 months ago

2.160.1

7 months ago

2.119.5

10 months ago

2.119.4

10 months ago

2.119.3

10 months ago

2.119.2

10 months ago

2.119.0

10 months ago

3.5.0

6 months ago

2.134.0

9 months ago

2.125.4

9 months ago

2.148.1

8 months ago

2.125.3

9 months ago

2.125.2

9 months ago

2.148.0

8 months ago

2.125.0

9 months ago

2.137.0

8 months ago

3.4.1

6 months ago

2.152.2

7 months ago

2.152.3

7 months ago

2.152.1

8 months ago

2.147.1

8 months ago

2.124.0

9 months ago

3.4.6

6 months ago

3.4.5

6 months ago

2.159.5

7 months ago

2.159.6

7 months ago

2.159.4

7 months ago

2.159.1

7 months ago

2.159.2

7 months ago

3.3.2

6 months ago

2.151.0

8 months ago

2.112.0

11 months ago

2.111.1

11 months ago

2.111.0

11 months ago

2.108.1

11 months ago

2.95.0

1 year ago

2.95.4

1 year ago

2.103.1

12 months ago

2.109.0

11 months ago

2.109.1

11 months ago

2.98.2

12 months ago

2.98.0

12 months ago

2.94.27

1 year ago

2.94.24

1 year ago

2.94.23

1 year ago

2.100.0

12 months ago

2.94.25

1 year ago

2.104.0

12 months ago

2.104.2

12 months ago

2.104.3

12 months ago

2.108.0

11 months ago

2.104.4

12 months ago

2.106.3

12 months ago

2.106.4

12 months ago

2.106.5

12 months ago

2.97.2

1 year ago

2.97.0

1 year ago

2.101.0

12 months ago

2.101.1

12 months ago

2.105.0

12 months ago

2.110.0

11 months ago

2.102.1

12 months ago

2.106.2

12 months ago

2.94.17

1 year ago

2.94.16

1 year ago

2.94.2

1 year ago

2.94.19

1 year ago

2.94.18

1 year ago

2.94.13

1 year ago

2.94.12

1 year ago

2.94.6

1 year ago

2.94.15

1 year ago

2.94.4

1 year ago

2.94.9

1 year ago

2.94.7

1 year ago

2.94.8

1 year ago

2.76.2

1 year ago

2.91.1

1 year ago

2.87.0

1 year ago

2.94.0

1 year ago

2.90.0

1 year ago

2.79.9

1 year ago

2.79.7

1 year ago

2.79.6

1 year ago

2.79.5

1 year ago

2.79.4

1 year ago

2.82.0

1 year ago

2.93.0

1 year ago

2.78.2

1 year ago

2.78.1

1 year ago

2.85.1

1 year ago

2.89.2

1 year ago

2.92.1

1 year ago

2.77.0

1 year ago

2.92.0

1 year ago

2.84.0

1 year ago

2.84.2

1 year ago

2.75.0

1 year ago

2.74.0

1 year ago

2.73.1

1 year ago

2.73.0

1 year ago

2.72.0

1 year ago

2.72.5

1 year ago

2.72.4

1 year ago

2.72.3

1 year ago

2.67.1

1 year ago

2.70.1

1 year ago

2.70.0

1 year ago

2.65.9

1 year ago

2.67.0

1 year ago

2.66.0

1 year ago

2.66.2

1 year ago

2.66.3

1 year ago

2.48.3

1 year ago

2.48.0

1 year ago

2.51.2

1 year ago

2.51.0

1 year ago

2.51.1

1 year ago

2.59.2

1 year ago

2.59.3

1 year ago

2.59.4

1 year ago

2.59.0

1 year ago

2.64.0

1 year ago

2.49.5

1 year ago

2.49.2

1 year ago

2.49.3

1 year ago

2.49.0

1 year ago

2.56.0

1 year ago

2.50.0

1 year ago

2.56.5

1 year ago

2.56.1

1 year ago

2.56.2

1 year ago

2.61.1

1 year ago

2.63.0

1 year ago

2.61.2

1 year ago

2.44.2

1 year ago

2.32.0

2 years ago

2.34.0

2 years ago

2.36.0

2 years ago

2.45.0

1 year ago

2.47.3

1 year ago

2.47.0

1 year ago

2.45.1

1 year ago

2.47.2

1 year ago

2.47.1

1 year ago

2.31.0

2 years ago

2.33.1

2 years ago

2.37.3

2 years ago

2.39.0

2 years ago

2.39.3

1 year ago

2.39.2

1 year ago

2.33.3

2 years ago

2.35.0

2 years ago

2.33.2

2 years ago

2.37.1

2 years ago

2.37.0

2 years ago

2.40.0

1 year ago

2.29.0

2 years ago

2.27.0

2 years ago

2.25.1

2 years ago

2.20.0

2 years ago

2.22.0

2 years ago

2.20.1

2 years ago

2.28.0

2 years ago

2.26.2

2 years ago

2.24.1

2 years ago

2.24.0

2 years ago

2.24.3

2 years ago

2.26.0

2 years ago

2.21.0

2 years ago

2.21.1

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

2.11.0

2 years ago

2.10.2

2 years ago

0.0.59

2 years ago

0.0.51

2 years ago

0.1.20

2 years ago

0.1.22

2 years ago

0.1.23

2 years ago

0.1.24

2 years ago

0.0.57

2 years ago

0.0.50

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.17

2 years ago

0.1.7

2 years ago

0.0.45

2 years ago

0.0.38

2 years ago

0.0.35

2 years ago

0.0.34

2 years ago

0.0.31

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.17

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.9

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago