@animech-public/chonky
Version:
A File Browser component for React
24 lines (22 loc) • 857 B
text/typescript
import { ChonkyThunk } from '../../types/redux.types';
import { FileHelper } from '../../util/file-helper';
import { reduxActions } from '../reducers';
import { selectors } from '../selectors';
export const reduxThunks = {
selectRange:
(params: { rangeStart: number; rangeEnd: number; reset?: boolean }): ChonkyThunk =>
(dispatch, getState) => {
const state = getState();
if (state.disableSelection) return;
const displayFileIds = selectors.getDisplayFileIds(state);
const fileIdsToSelect = displayFileIds
.slice(params.rangeStart, params.rangeEnd + 1)
.filter((id) => id && FileHelper.isSelectable(state.fileMap[id])) as string[];
dispatch(
reduxActions.selectFiles({
fileIds: fileIdsToSelect,
reset: !!params.reset,
}),
);
},
};