Closed kappakun17 closed 3 months ago
ReactFlowのコンポーネントをStorybookで利用できるよう環境設定
ファイル追加はせず、ただStorybookの動作チェックがしたい場合、[2]から進んでください。
コンポーネント.tsx
コンポーネント.stories.ts
コンポーネント.css
npm run storybook
@KagenoMoheji @yuta0193
ひとまず上記が通ればOKかなと思います🙌
名前: DemoNode DIR : src/components/DemoNode.tsx Vite + React, Storybook. どちらでも表示可能であることを確認済み。
DemoNode
src/components/DemoNode.tsx
輪読会で、ReactFlowのライブラリを勉強した時に出てきた、ReactFlowが用意するhooksを使用するため、 何もしない場合、Storybookでは対応ができず、コンポーネントが表示されない。
StorybookもReactFlowのhooksをラッパーするように .storybook/preview でデコレーターを設定した。
export const decorators = [ (Story) => ( // ReactFlowのhookがラッパーされている <ReactFlowProvider> <Story /> </ReactFlowProvider> ) ]
// .storybook/preview/ import { create } from 'zustand'; import { ReactFlowProvider } from 'reactflow'; import createContext from 'zustand/context' import React from 'react'; // カスタムプロバイダーを用意 const { Provider, useStore } = createContext() // 状態管理を用意 const createStore = () => create((set) =>({ nodes: [], edges: [], addNode: (node) => set((state) => ({ nodes: [...state.nodes, node] })), // 同様 addEdge: (edge) => set((state) => ({ edges: [...state.edges, edge] })), // 同様 }))
// Storybook の設定ファイル(.storybook/preview.js など) export const decorators = [ (Story) => ( // Storybookで状態管理にアクセスできるようにする必要がある(Storybookのデータテストなど)
) ]
close #4
@kappakun17 あ,また別ブランチでいいのでstorybookの簡単なdoc欲しいかも
概要
ReactFlowのコンポーネントをStorybookで利用できるよう環境設定
使用方法
ファイル追加はせず、ただStorybookの動作チェックがしたい場合、[2]から進んでください。
コンポーネント.tsx
コンポーネント.stories.ts
コンポーネント.css
コンポーネント.tsx
のスタイル定義レビュー
@KagenoMoheji @yuta0193
ひとまず上記が通ればOKかなと思います🙌
共有
今回のために、テスト用ReactFlowのカスタムノードを用意
名前:
DemoNode
DIR :src/components/DemoNode.tsx
Vite + React, Storybook. どちらでも表示可能であることを確認済み。StorybookをReactFlow-hook対応するように設定
輪読会で、ReactFlowのライブラリを勉強した時に出てきた、ReactFlowが用意するhooksを使用するため、 何もしない場合、Storybookでは対応ができず、コンポーネントが表示されない。
StorybookもReactFlowのhooksをラッパーするように .storybook/preview でデコレーターを設定した。
懸念
// Storybook の設定ファイル(.storybook/preview.js など) export const decorators = [ (Story) => ( // Storybookで状態管理にアクセスできるようにする必要がある(Storybookのデータテストなど)
) ]