toodo/src/hooks.ts

27 lines
703 B
TypeScript

import { useState } from "react";
import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux";
import { AppDispatch, RootState } from "./store";
export type UseInputValueReturnT = {
change: (value: string) => void;
submit: () => void;
value: string;
};
export const useInputValue = (
initialValue: string = "",
onSubmit: (value: string) => void
): UseInputValueReturnT => {
const [value, setValue] = useState(initialValue);
return {
change: (value) => setValue(value),
submit: () => onSubmit(value),
value,
};
};
export const useAppDispatch = () => useDispatch<AppDispatch>();
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;