7. Pure components and storybook

This file was copied from the packages/webapp/src/stories/docs folder. Its accuracy as of August 8, 2024 has not been verified

Pure components (all components under webapp/src/component directory) can't use or modify global variables (import history from '../history' useDispatch useSelector), can't make network request (The use of GoogleLoginButton or GoogleMap components), and can't use any components under webapp/src/container directory.

| Resources | | --------- | | Official storybook tutorial | | Traversy React tutorial | | Official React tutorial | | CSS cheat sheet | | flexbox cheat sheet | | CSS grid generator | | material-ui styling solution |

Steps for a backend - frontend story from a data flow perspective

  • Create knex migration to create/modify tables in database

  • Create objection models

  • Endpoints and empty controllers

  • Backend jest unit testing

  • Implement controllers

  • Create authorization/validation middlewares

  • Run tests and make sure everything passes

  • Create pure frontend components in storybook

  • res.data normalizer, redux slice, redux selectors to hold and access the data

  • Redux saga for get/post/put/patch request

  • Container component to connect saga actions/selector with pure components

  • Connect Route component with container components with react router

  • Manual testing