import get from "lodash/get"; export function selectRoot>( name: string ): (state: Record) => State; export function selectRoot>( name: string, state: Record ): State; export function selectRoot>( name: string, state?: Record ): any { if (state) { return state[name]; } return (state: Record) => selectRoot(name, state); } export const selectError = ( name: string, state: Record ): null | Error => get(selectRoot(name, state), "error"); export const selectIsActive = ( name: string, state: Record ): boolean => get(selectRoot(name, state), "isActive"); export function oneOfIsActive(...names: string[]) { return (state: any) => { return !!names.find((name) => { return get( state, `${name}.isActive`, get(state, `${name}.current.isActive`) ); }); }; }