import React, { useCallback } from 'react'; import { Button, Form, Icon, Label, Menu } from 'semantic-ui-react'; import { entries, filter, head, map } from 'lodash-es'; import { useRelatableStateContext, useRelatableToolbarContext } from '../../states'; import { getToolbarStateClass } from '../../utils/relatable-state-classes'; import { IWithFiltersInstance, IWithSelectionInstance, withSelection } from '../../add-ons'; import { ToolbarPopup } from './toolbar-popup'; import arrayHasItems from '../../utils/array-has-items'; export default function SelectableToolbar() { const { selectedFlatRows, state: { selectedRowIds } } = useRelatableStateContext(); const [selectedToolbarAction, setToolbar, clearToolbar] = useRelatableToolbarContext(); const selectedRows = filter(entries(selectedRowIds), ([, selected]) => selected); const isSelected = arrayHasItems(selectedRows); return } selectedToolbarAction={selectedToolbarAction} onClose={clearToolbar}> setToolbar(withSelection.name)}> Selected {isSelected && } ; } function SelectionPopup({ rows, selectedRowIds }: any) { const { onCustomSelectionChange } = useRelatableStateContext(); const [, , clearToolbar] = useRelatableToolbarContext(); const onSelectionClear = useCallback(() => { const selectedRows = filter(rows, 'isSelected'); clearToolbar(); onCustomSelectionChange(selectedRows, false); }, [onCustomSelectionChange, rows]); return

You have selected {selectedRowIds.length} rows

; }