chore(redux-rtk): typed hooks
#476 (closed)
Related toWhat 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- 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
- 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