UNPKG

@hisptz/react-ui

Version:

A collection of reusable complex DHIS2 react ui components.

67 lines (53 loc) 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TopBar; var _appRuntime = require("@dhis2/app-runtime"); var _ui = require("@dhis2/ui"); var _dataSource = require("./../../../../core/utils/dataSource"); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _TopBarModule = _interopRequireDefault(require("./TopBar.module.css")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function TopBar(_ref) { let { dataSources, onTabChange, selectedTab } = _ref; const engine = (0, _appRuntime.useDataEngine)(); const [data, setData] = (0, _react.useState)(); (0, _react.useEffect)(() => { const fetchData = async () => { const data = await Promise.all(dataSources.map(async source => await (0, _dataSource.getDataSourceType)(engine, source.id))); setData(data.map(x => ({ id: x.object.id, label: x.object.name }))); }; fetchData().catch(); }, [dataSources]); return /*#__PURE__*/_react.default.createElement(_ui.TabBar, null, /*#__PURE__*/_react.default.createElement("div", { style: { width: "100%", overflowX: "auto", display: "flex" }, className: _TopBarModule.default["scrollbar-hidden"] }, data === null || data === void 0 ? void 0 : data.map((dataSource, index) => { var _dataSource$label; return /*#__PURE__*/_react.default.createElement(_ui.Tab, { selected: (selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.id) === (dataSource === null || dataSource === void 0 ? void 0 : dataSource.id), onClick: () => onTabChange(dataSource), key: "".concat(dataSource === null || dataSource === void 0 ? void 0 : dataSource.id, "-tab-").concat(index) }, (_dataSource$label = dataSource === null || dataSource === void 0 ? void 0 : dataSource.label) !== null && _dataSource$label !== void 0 ? _dataSource$label : dataSource === null || dataSource === void 0 ? void 0 : dataSource.displayName); }))); } TopBar.propTypes = { dataSources: _propTypes.default.arrayOf(_propTypes.default.object).isRequired, selectedTab: _propTypes.default.object.isRequired, onTabChange: _propTypes.default.func.isRequired };