UNPKG

@trellixio/roaster-coffee

Version:
64 lines (60 loc) 2.05 kB
'use strict'; var React = require('react'); var types = require('./types.js'); var context = require('./context.js'); function useTableSelectionChange() { const onSelectionChange = React.useContext(context.TableSelectionChangeContext); if (!onSelectionChange) { throw new Error(`Missing TableProvider context`); } return onSelectionChange; } function useTableRow() { const tableRow = React.useContext(context.TableRowContext); if (!tableRow) { throw new Error(`Missing TableProvider context`); } return tableRow; } function useTableValue() { const table = React.useContext(context.TableContext); if (!table) { throw new Error(`Missing TableProvider context`); } return table; } function useBulkSelectionData({ selectedItemsCount, itemCount }) { const selectable = Boolean(selectedItemsCount); const selectMode = selectedItemsCount === "All" || selectedItemsCount > 0; let bulkSelectState = "indeterminate"; if (!selectedItemsCount || selectedItemsCount === 0) { bulkSelectState = void 0; } else if (selectedItemsCount === types.SELECT_ALL_ITEMS || selectedItemsCount === itemCount) { bulkSelectState = true; } return { selectMode, bulkSelectState, selectable }; } function useHandleBulkSelection({ onSelectionChange = () => { } }) { const handleSelectionChange = React.useCallback( (selectionType, selection) => { if (selectionType === types.SelectionType.Single) { onSelectionChange(types.SelectionType.Single, selection); } else if (selectionType === types.SelectionType.Page || selectionType === types.SelectionType.All) { onSelectionChange(selectionType, types.SELECT_ALL_ITEMS); } }, [onSelectionChange] ); return handleSelectionChange; } exports.useBulkSelectionData = useBulkSelectionData; exports.useHandleBulkSelection = useHandleBulkSelection; exports.useTableRow = useTableRow; exports.useTableSelectionChange = useTableSelectionChange; exports.useTableValue = useTableValue; //# sourceMappingURL=hooks.js.map