@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
15 lines (14 loc) • 688 B
JavaScript
import { useMemo } from 'react';
import { notEmpty } from '../../arrayUtils';
import { useControlledContext } from '../ControlledContext';
export default function useVisibleFields() {
var _a = useControlledContext(), visibleFields = _a.visibleFields, itemModel = _a.itemModel;
var allFields = itemModel.fields;
var fieldsMap = useMemo(function () {
return new Map(allFields.map(function (field) { return [field.key, field]; }));
}, [allFields]);
var result = useMemo(function () {
return visibleFields.map(function (fieldKey) { return fieldsMap.get(fieldKey); }).filter(notEmpty);
}, [fieldsMap, visibleFields]);
return result;
}