Skip to content

chore(redux-rtk): typed hooks

Bastien DUMONT requested to merge app-selector into dev

Related to #476 (closed)

What does this MR do and why?

From the RTK documentation : "While it's possible to import the RootState and AppDispatch types into each component, it's better to create typed versions of the useDispatch and useSelector hooks for usage in your application. This is important for a couple reasons..."

  • Also removes mocked dispatch where this was not necessary

  • Moves selectors before any local useState

Screenshots or screen recordings

 const dispatch = useDispatch<Dispatch<AppActionsTypes>>()
// typed dispatch
 const dispatch = useAppDispatch()


const { screenType } = useSelector((state: AppStore) => state.ecolyo.global)
// typed selector
const { screenType } = useAppSelector(state => state.global)

It saves you the need to type dispatch <Dispatch<AppActionsTypes>> and selectors (state: RootState) every time

How to set up and validate locally (or on alpha)

List all steps to set up and validate the changes on local environment.

MR acceptance checklist

To be completed by the chosen reviewer.

Quality Bugs - Code Smells

  • For the code that this change impacts, I believe that the automated tests validate functionality that is highly important to users. If the existing automated tests do not cover this functionality, I have added the necessary additional tests or I have added an issue to describe the automation testing gap and linked it to this MR.
  • I have made sure that the sonar quality coverage is up to standards.
  • I have considered the impact of this change on the front-end, back-end, and database portions of the system where appropriate and applied.
  • I have tested this MR in all supported browsers or determined that this testing is not needed.
  • I have confirmed that this change is backwards compatible across updates (migrate up needs a migrate down), or I have decided that this does not apply.

Performance, reliability and availability

  • I am confident that this MR does not harm performance, or I have asked a reviewer to help assess the performance impact.
  • I have considered the scalability risk based on future predicted growth.

Documentation

  • The MR is named after the desired squash commit to feed the changelog linked to the current milestone.
  • I have added/updated documentation (also updated if the changes feature a deprecation) or I have decided that documentation changes are not needed for this MR.

Security Security Rating

  • I have confirmed that if this MR does not contains any sensitive informations hidden in the changes.

Deployment

  • When featured on a self-data project release, I have made sure my app version in the manifest and package.json is incremented and any relative changes to the permissions are clearly written and transmitted to Cozy.
Edited by Bastien DUMONT

Merge request reports