UNPKG

@talend/react-components

Version:
95 lines (92 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactI18next = require("react-i18next"); var _ListDisplayMode = require("../DisplayMode/ListDisplayMode.component"); var _context = require("../context"); var _translate = _interopRequireDefault(require("../../../translate")); var _constants = _interopRequireDefault(require("../../../constants")); var _useCollectionSort = require("./hooks/useCollectionSort.hook"); var _useCollectionFilter = require("./hooks/useCollectionFilter.hook"); var _ListModule = _interopRequireDefault(require("../List.module.scss")); var _useColumnsVisibility = require("./hooks/useColumnsVisibility.hook"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function Manager({ initialDisplayMode, initialSortParams, initialVisibleColumns, columnsVisibilityStorageKey, children, t, ...rest }) { let collection = rest.collection; const [displayMode, setDisplayMode] = (0, _react.useState)(initialDisplayMode || _ListDisplayMode.displayModesOptions[0]); const [columns, setColumns] = (0, _react.useState)([]); const { visibleColumns, setVisibleColumns } = (0, _useColumnsVisibility.useColumnsVisibility)(columns, initialVisibleColumns, columnsVisibilityStorageKey); // Sort items const { sortedCollection, sortParams, setSortParams } = (0, _useCollectionSort.useCollectionSort)(collection, initialSortParams); collection = sortedCollection; // Filter by text const { filteredCollection, textFilter, setTextFilter, filteredColumns, setFilteredColumns } = (0, _useCollectionFilter.useCollectionFilter)(collection, undefined, undefined, visibleColumns); collection = filteredCollection; const contextValues = { collection, displayMode, columns, visibleColumns, filteredColumns, setDisplayMode, setSortParams, setTextFilter, setColumns, setVisibleColumns, setFilteredColumns, sortParams, t, textFilter }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.ListContext.Provider, { value: contextValues, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _ListModule.default.list, children: children }) }); } Manager.defaultProps = { t: (0, _translate.default)() }; Manager.propTypes = { children: _propTypes.default.node, collection: _propTypes.default.array, id: _propTypes.default.string.isRequired, initialDisplayMode: _propTypes.default.oneOf(_ListDisplayMode.displayModesOptions), initialVisibleColumns: _propTypes.default.arrayOf(_propTypes.default.string), initialSortParams: _propTypes.default.shape({ sortBy: _propTypes.default.string, isDescending: _propTypes.default.bool }), columnsVisibilityStorageKey: _propTypes.default.string, t: _propTypes.default.func }; var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(Manager); //# sourceMappingURL=ListManager.component.js.map