UNPKG

box-ui-elements-mlh

Version:
27 lines (22 loc) 918 B
/** * @flow * @file Function to filter cells from being selected * @author Box */ import { TYPE_FILE } from '../../constants'; import type { BoxItem } from '../../common/types/core'; function isRowSelectable( selectableType: string, extensionsWhitelist: string[], hasHitSelectionLimit: boolean, rowData: BoxItem, ): boolean { const { type, extension = '', selected }: BoxItem = rowData; const shouldAllowSelection: boolean = hasHitSelectionLimit ? !!selected : true; const isTypeSelectable: boolean = !!type && selectableType.indexOf(type) > -1; const isFilePicker: boolean = selectableType.indexOf(TYPE_FILE) > -1; const isExtensionWhitelisted: boolean = isFilePicker && extensionsWhitelist.length ? extensionsWhitelist.indexOf(extension) > -1 : true; return shouldAllowSelection && isTypeSelectable && isExtensionWhitelisted; } export default isRowSelectable;