# Client redesign v2 ## Authorization Needs deeper discussion! ## Routing + Context Combine routing and context because they are tightly coupled - [ ] Clean up routing - [ ] move loading logic from routes to containers, contexts or hooks (overlaps with the [components split](#Components)). Keep in mind the breadcrumb updates. - [ ] split the `/identity` route from rest of the application. - [ ] Do not load uneccessary data. - [ ] Do not show left side navigation bar. - [ ] Navigation to `Home` can be done by clicking on the `Alkemio logo` - [ ] Optimize dataloading. To be identified when a context is needed (most work here is done) - [ ] Configuration context - [ ] Authentication/kratos context - [ ] Graphql context - [ ] User context (currently logged user) - [ ] Ecoverses (plural) context - [ ] Ecoverse (singular) context - [ ] Organization context - [ ] Challenge context - [ ] Opportunity context - [ ] Improve breadcrumb ## Components + Pages - [ ] Split big components to: - [ ] business logic - containers or hooks - [ ] presentational components - [ ] Combine splitted components into views - [ ] Reuse views in pages **Example:** `pages/Admin/Community/CommunityUpdatesPage.tsx` *NS>> Best here to have a list of the key ones to be refactored, and we prioritise each? This is currently open ended.* ## SEO Optimizations (new) - [ ] [React Helmet](https://www.npmjs.com/package/react-helmet) ## MUI (Formerly Material UI) - [ ] Upgrade to MUI 5.0 With MUI 5 unstyled compnents are shipped which allows create complete theme from srach. The default MUI theme is still available. The actuall upgrade should be around hour. There is a [guide](https://mui.com/guides/migration-v4/) and [codemods](https://mui.com/guides/migration-v4/#run-codemods) that can be run. *NS>> This sounds like we should just do it + not talk about it!* - [ ] Clean up core components (UX/UI Design needed!) - [ ] **Typography** - start using the MUI `Typography` component - [ ] **makeStyles** - use `makeStyles` instead of our `createStyles` - the last one is just an export of makeStyles. - [ ] **Cards** - migrate basic cards to relay on MUI `Card` - [ ] **Button** ## Testing - [ ] Unit testing - [ ] presentational components - [ ] composites (example: `ApplicationButton`) - [ ] containers - [ ] hooks ## Priorites: 0. Authorization discussion 1. Routing + Context 2. Components 3. SEO Optimizations 4. MUI 5. Testing