La librería llamada storybook te permite organizar de forma cómoda un showroom bastante funcional para todos los componentes implementados en tu sistema.
Además de la capacidad de renderizar componentes, puedes interactuar con los componentes agregados: diferentes eventos, variaciones, parámetros personalizados... ¡y manipularlos directamente a través de la interfaz!
Crea la carpeta .storybook en la raíz de tu proyecto
Crea el archivo .storybook/preview.tsx con el contenido:
importReactfrom'react';import{ configure, addDecorator }from'@storybook/react';import{TestProvider}from'../src/utils/tests';import{ store }from'../src/redux/store';const req = require.context('../src',true,/\.stories\.tsx$/);functionloadStories(){ req.keys().forEach(req);}// Test provider contains all necessary react contexts for proper application work, such as redux context, @mui/theme provider, and so onaddDecorator((S)=>(<TestProvider store={store}><S/></TestProvider>));configure(loadStories, module);
Crea el archivo .storybook/main.js con el contenido:
const path =require('path');module.exports={addons:['@storybook/preset-create-react-app'],core:{builder:'webpack5',},// feel free to modify webpack config here as wellwebpackFinal:async(config)=>{ config.module.rules.push({test:/\.mjs$/,include:/node_modules/,type:'javascript/auto',});// my custom alias for pretty-path module resolution. ~ sign points to root of src folder config.resolve.alias['~']= path.resolve(__dirname,'../src');return config;},};