diff --git a/package.json b/package.json index 30b083d..df19e4a 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "dependencies": { "@mui/icons-material": "^5.0.3", "@mui/material": "^5.0.3", + "@reduxjs/toolkit": "^1.6.2", "react": "^17.0.2", - "react-dom": "^17.0.2" + "react-dom": "^17.0.2", + "react-redux": "^7.2.5" }, "private": "true" } diff --git a/src/hooks.ts b/src/hooks.ts index 25d6efb..cae27fc 100644 --- a/src/hooks.ts +++ b/src/hooks.ts @@ -1,4 +1,7 @@ import { ChangeEventHandler, useState } from "react"; +import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; + +import { AppDispatch, RootState } from "./store"; export type UseInputValueReturnT = { onChange: ChangeEventHandler; @@ -18,3 +21,6 @@ export const useInputValue = ( value, }; }; + +export const useAppDispatch = () => useDispatch(); +export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..cc1242d --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,10 @@ +import { configureStore } from "@reduxjs/toolkit"; + +const store = configureStore({ + reducer: {}, +}); + +export type RootState = ReturnType; +export type AppDispatch = typeof store.dispatch; + +export default store;