View Source PhxLiveStorybook.Router (phx_live_storybook v0.4.3)

Provides LiveView routing for storybook.

Link to this section Summary

Functions

Defines a PhxLiveStorybook route.

Defines routes for PhxLiveStorybook static assets.

Link to this section Functions

Link to this macro

live_storybook(path, opts)

View Source (macro)

Defines a PhxLiveStorybook route.

It expects the path the storybook will be mounted at and a set of options.

This will also generate a named helper called live_storybook_path/2 which you can use to link directly to the storybook, such as:

<%= link "Storybook", to: live_storybook_path(conn, :root) %>

Note that you should only use link/2 to link to the storybook (and not live_redirect/live_link), as it has to set its own session on first rendering.

options

Options

  • :backend_module - Required - Name of your backend module.
  • :live_socket_path - Configures the socket path. It must match the socket "/live", Phoenix.LiveView.Socket in your endpoint.
  • :assets_path - Configures the assets path. It must match the storybook_assets in your router.
  • :session_name - Configures the live session name. Defaults to :live_storybook. Use this option if you want to mount multiple storybooks in the same router.
  • :as - Allows you to set the route helper name. Defaults to:live_storybook.
  • :pipeline - Set to false if you don't want a router pipeline to be created. This is useful if you want to define your own :storybook_browser pipeline, or if you mount multiple storybooks, in which case the pipeline only has to be defined once. Defaults to true.

usage

Usage

# lib/my_app_web/router.ex
use MyAppWeb, :router
import PhxLiveStorybook.Router
...

scope "/" do
  pipe_through :browser
  live_storybook "/storybook", backend_module: MyAppWeb.Storybook
end
Link to this macro

storybook_assets(path \\ "/storybook/assets")

View Source (macro)

Defines routes for PhxLiveStorybook static assets.

Static assets should not be CSRF protected. So they need to be mounted in your router in a different pipeline than storybook's.

It can take the path the storybook assets will be mounted at. Default path is "/storybook/assets".

usage

Usage

# lib/my_app_web/router.ex
use MyAppWeb, :router
import PhxLiveStorybook.Router
...

scope "/" do
  storybook_assets()
end