UNPKG

@teambit/workspace

Version:
137 lines (134 loc) 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.workspaceDrawer = void 0; function _react() { const data = _interopRequireWildcard(require("react")); _react = function () { return data; }; return data; } function _componentUi() { const data = require("@teambit/component.ui.component-drawer"); _componentUi = function () { return data; }; return data; } function _uiFoundationUi() { const data = require("@teambit/ui-foundation.ui.side-bar"); _uiFoundationUi = function () { return data; }; return data; } function _lanesHooks() { const data = require("@teambit/lanes.hooks.use-lanes"); _lanesHooks = function () { return data; }; return data; } function _lanesHooks2() { const data = require("@teambit/lanes.hooks.use-lane-components"); _lanesHooks2 = function () { return data; }; return data; } function _workspaceContext() { const data = require("./ui/workspace/workspace-context"); _workspaceContext = function () { return data; }; return data; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } const workspaceDrawer = ({ treeWidgets, filtersSlot, drawerWidgetSlot, overrideUseLanes: useLanesFromProps }) => { const useLanes = useLanesFromProps || _lanesHooks().useLanes; return new (_componentUi().ComponentsDrawer)({ order: 0, id: 'workspace-components-drawer', name: 'COMPONENTS', plugins: { tree: { widgets: treeWidgets, customRenderer: treeNodeSlot => function TreeNode(props) { const children = props.node.children; if (!children) { // non collapse return /*#__PURE__*/_react().default.createElement(_uiFoundationUi().ComponentView, _extends({}, props, { treeNodeSlot: treeNodeSlot })); } if (props.node.payload instanceof _uiFoundationUi().ScopePayload) return /*#__PURE__*/_react().default.createElement(_uiFoundationUi().ScopeTreeNode, props); return /*#__PURE__*/_react().default.createElement(_uiFoundationUi().NamespaceTreeNode, props); } }, filters: filtersSlot, drawerWidgets: drawerWidgetSlot }, emptyMessage: 'Workspace is empty', useLanes, useComponents: () => { const { lanesModel, loading: lanesLoading } = useLanes(); const viewedLaneId = lanesModel?.viewedLane?.id; const defaultLane = lanesModel?.getDefaultLane(); const isViewingDefaultLane = viewedLaneId && defaultLane?.id.isEqual(viewedLaneId); const isViewingWorkspaceVersions = lanesModel?.isViewingCurrentLane(); const { components: laneComponents = [], loading: laneCompsLoading } = (0, _lanesHooks2().useLaneComponents)(!isViewingWorkspaceVersions ? viewedLaneId : undefined); const { components: mainComponents = [], loading: mainCompsLoading } = (0, _lanesHooks2().useLaneComponents)(defaultLane?.id); const workspace = (0, _react().useContext)(_workspaceContext().WorkspaceContext); const { components: workspaceComponents } = workspace; const loading = lanesLoading || laneCompsLoading || mainCompsLoading; /** * if viewing locally checked out lane, return all components from the workspace * when viewing main when locally checked out to another lane, explicitly return components from the "main" lane * when viewing another lane when locally checked out to a different lane, return "main" + "lane" components * */ if (isViewingWorkspaceVersions) { return { loading, components: workspaceComponents }; } if (isViewingDefaultLane) { return { loading, components: mainComponents }; } return { loading, components: mergeComponents(mainComponents, laneComponents) }; } }); }; exports.workspaceDrawer = workspaceDrawer; function mergeComponents(mainComponents, laneComponents) { const mainComponentsThatAreNotOnLane = mainComponents.filter(mainComponent => { return !laneComponents.find(laneComponent => laneComponent.id.toStringWithoutVersion() === mainComponent.id.toStringWithoutVersion()); }); return laneComponents.concat(mainComponentsThatAreNotOnLane); } //# sourceMappingURL=workspace.ui.drawer.js.map