/
dedaMazai
/
reactGoodPattern
Обзор
Документация
Войти
/
dedaMazai
/
reactGoodPattern
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/shared/lib/store/buildSelector.ts
16 строк
609 B
Andrei Chipizubov
fix
23 май 2023, 18:18
23 май 2023, 18:18
e1aefbb
Код
Авторство
О чём код?
import { useSelector } from 'react-redux'; import { StateSchema } from '@/app/providers/StoreProvider'; type Selector<T, Args extends any[]> = (state: StateSchema, ...args: Args) => T; type Hook<T, Args extends any[]> = (...args: Args) => T; type Result<T, Args extends any[]> = [Hook<T, Args>, Selector<T, Args>]; export function buildSelector<T, Args extends any[]>( selector: Selector<T, Args>, ): Result<T, Args> { const useSelectorHook: Hook<T, Args> = (...args: Args) => ( useSelector((state: StateSchema) => selector(state, ...args)) ); return [useSelectorHook, selector]; }