Skip to content

Commit

Permalink
rework getSelectors
Browse files Browse the repository at this point in the history
  • Loading branch information
EskiMojo14 committed Jan 22, 2024
1 parent 96dfb25 commit 998deea
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions src/redux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,27 @@ function makeSelectorFactory<Data>() {
selectState?: (rootState: RootState) => HistoryState<Data>,
{ createSelector = _createSelector }: GetSelectorsOptions = {},
): HistorySelectors<Data, any> {
const selectCanUndo = (state: HistoryState<Data>) => state.past.length > 0;
const selectCanRedo = (state: HistoryState<Data>) =>
state.future.length > 0;
const selectPresent = (state: HistoryState<Data>) => state.present;
const localisedSelectors = {
selectCanUndo: (state) => state.past.length > 0,
selectCanRedo: (state) => state.future.length > 0,
selectPresent: (state) => state.present,
} satisfies Record<string, (state: HistoryState<Data>) => unknown>;
if (!selectState) {
return {
selectCanUndo,
selectCanRedo,
selectPresent,
};
return localisedSelectors;
}
return {
selectCanUndo: createSelector(selectState, selectCanUndo),
selectCanRedo: createSelector(selectState, selectCanRedo),
selectPresent: createSelector(selectState, selectPresent),
selectCanUndo: createSelector(
selectState,
localisedSelectors.selectCanUndo,
),
selectCanRedo: createSelector(
selectState,
localisedSelectors.selectCanRedo,
),
selectPresent: createSelector(
selectState,
localisedSelectors.selectPresent,
),
};
}
return getSelectors;
Expand Down

0 comments on commit 998deea

Please sign in to comment.