@teambit/workspace 0.0.684 → 0.0.687
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/workspace.provider.js +0 -11
- package/dist/workspace.provider.js.map +1 -1
- package/dist/workspace.ui.drawer.d.ts +8 -0
- package/dist/workspace.ui.drawer.js +65 -0
- package/dist/workspace.ui.drawer.js.map +1 -0
- package/dist/workspace.ui.runtime.d.ts +16 -4
- package/dist/workspace.ui.runtime.js +46 -8
- package/dist/workspace.ui.runtime.js.map +1 -1
- package/package-tar/teambit-workspace-0.0.687.tgz +0 -0
- package/package.json +33 -41
- package/{preview-1647973488567.js → preview-1648130327832.js} +2 -2
- package/workspace.ui.drawer.tsx +32 -0
- package/workspace.ui.runtime.tsx +47 -5
- package/dist/tag-cmd.d.ts +0 -29
- package/dist/tag-cmd.js +0 -296
- package/dist/tag-cmd.js.map +0 -1
- package/dist/ui/workspace-components-drawer/index.d.ts +0 -1
- package/dist/ui/workspace-components-drawer/index.js +0 -23
- package/dist/ui/workspace-components-drawer/index.js.map +0 -1
- package/dist/ui/workspace-components-drawer/workspace-components-drawer.module.scss +0 -51
- package/dist/ui/workspace-components-drawer/workspace-components.drawer.d.ts +0 -15
- package/dist/ui/workspace-components-drawer/workspace-components.drawer.js +0 -270
- package/dist/ui/workspace-components-drawer/workspace-components.drawer.js.map +0 -1
- package/package-tar/teambit-workspace-0.0.684.tgz +0 -0
- package/ui/workspace-components-drawer/index.ts +0 -1
- package/ui/workspace-components-drawer/workspace-components-drawer.module.scss +0 -51
- package/ui/workspace-components-drawer/workspace-components.drawer.tsx +0 -149
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.WorkspaceComponentsDrawer = void 0;
|
|
11
|
-
|
|
12
|
-
function _extends2() {
|
|
13
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
|
-
|
|
15
|
-
_extends2 = function () {
|
|
16
|
-
return data;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
return data;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function _defineProperty2() {
|
|
23
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
24
|
-
|
|
25
|
-
_defineProperty2 = function () {
|
|
26
|
-
return data;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return data;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function _uiFoundationUi() {
|
|
33
|
-
const data = require("@teambit/ui-foundation.ui.full-loader");
|
|
34
|
-
|
|
35
|
-
_uiFoundationUi = function () {
|
|
36
|
-
return data;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
return data;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function _uiFoundationUi2() {
|
|
43
|
-
const data = require("@teambit/ui-foundation.ui.side-bar");
|
|
44
|
-
|
|
45
|
-
_uiFoundationUi2 = function () {
|
|
46
|
-
return data;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
return data;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function _react() {
|
|
53
|
-
const data = _interopRequireWildcard(require("react"));
|
|
54
|
-
|
|
55
|
-
_react = function () {
|
|
56
|
-
return data;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
return data;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function _classnames() {
|
|
63
|
-
const data = _interopRequireDefault(require("classnames"));
|
|
64
|
-
|
|
65
|
-
_classnames = function () {
|
|
66
|
-
return data;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
return data;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function _designUiStyles() {
|
|
73
|
-
const data = require("@teambit/design.ui.styles.muted-italic");
|
|
74
|
-
|
|
75
|
-
_designUiStyles = function () {
|
|
76
|
-
return data;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
return data;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function _designUiStyles2() {
|
|
83
|
-
const data = require("@teambit/design.ui.styles.ellipsis");
|
|
84
|
-
|
|
85
|
-
_designUiStyles2 = function () {
|
|
86
|
-
return data;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
return data;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function _designUiInput() {
|
|
93
|
-
const data = require("@teambit/design.ui.input.toggle");
|
|
94
|
-
|
|
95
|
-
_designUiInput = function () {
|
|
96
|
-
return data;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
return data;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function _workspaceContext() {
|
|
103
|
-
const data = require("../workspace/workspace-context");
|
|
104
|
-
|
|
105
|
-
_workspaceContext = function () {
|
|
106
|
-
return data;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
return data;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function _workspaceComponentsDrawerModule() {
|
|
113
|
-
const data = _interopRequireDefault(require("./workspace-components-drawer.module.scss"));
|
|
114
|
-
|
|
115
|
-
_workspaceComponentsDrawerModule = function () {
|
|
116
|
-
return data;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
return data;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
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); }
|
|
123
|
-
|
|
124
|
-
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; }
|
|
125
|
-
|
|
126
|
-
const WorkspaceTreeContext = /*#__PURE__*/(0, _react().createContext)({
|
|
127
|
-
collapsed: true,
|
|
128
|
-
setCollapsed: () => {},
|
|
129
|
-
activeFilters: [],
|
|
130
|
-
setActiveFilter: () => {},
|
|
131
|
-
filterOpen: false,
|
|
132
|
-
setFilterOpen: () => {}
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
class WorkspaceComponentsDrawer {
|
|
136
|
-
constructor(treeNodeSlot) {
|
|
137
|
-
this.treeNodeSlot = treeNodeSlot;
|
|
138
|
-
(0, _defineProperty2().default)(this, "id", 'workspace-components');
|
|
139
|
-
(0, _defineProperty2().default)(this, "name", 'COMPONENTS');
|
|
140
|
-
(0, _defineProperty2().default)(this, "widgets", [/*#__PURE__*/_react().default.createElement(FilterWidget, {
|
|
141
|
-
key: 'filter-widget'
|
|
142
|
-
}), /*#__PURE__*/_react().default.createElement(TreeToggleWidget, {
|
|
143
|
-
key: 'tree-toggle-widget'
|
|
144
|
-
})]);
|
|
145
|
-
(0, _defineProperty2().default)(this, "Context", ({
|
|
146
|
-
children
|
|
147
|
-
}) => {
|
|
148
|
-
const [collapsed, setCollapsed] = (0, _react().useState)(true);
|
|
149
|
-
const [activeFilters, setActiveFilters] = (0, _react().useState)([]);
|
|
150
|
-
const [filterOpen, setFilterOpen] = (0, _react().useState)(false);
|
|
151
|
-
|
|
152
|
-
const handleActiveFilterToggle = filterId => {
|
|
153
|
-
const isFilterActive = activeFilters.includes(filterId);
|
|
154
|
-
|
|
155
|
-
if (isFilterActive) {
|
|
156
|
-
setActiveFilters(list => list.filter(id => id !== filterId));
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
setActiveFilters(list => list.concat(filterId));
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
return /*#__PURE__*/_react().default.createElement(WorkspaceTreeContext.Provider, {
|
|
164
|
-
value: {
|
|
165
|
-
collapsed,
|
|
166
|
-
setCollapsed,
|
|
167
|
-
activeFilters,
|
|
168
|
-
setActiveFilter: handleActiveFilterToggle,
|
|
169
|
-
filterOpen,
|
|
170
|
-
setFilterOpen
|
|
171
|
-
}
|
|
172
|
-
}, children);
|
|
173
|
-
});
|
|
174
|
-
(0, _defineProperty2().default)(this, "Filters", [/*#__PURE__*/_react().default.createElement(DeprecateFilter, {
|
|
175
|
-
key: 'deprecate-filter'
|
|
176
|
-
})]);
|
|
177
|
-
(0, _defineProperty2().default)(this, "render", () => {
|
|
178
|
-
const workspace = (0, _react().useContext)(_workspaceContext().WorkspaceContext);
|
|
179
|
-
const {
|
|
180
|
-
collapsed,
|
|
181
|
-
activeFilters
|
|
182
|
-
} = (0, _react().useContext)(WorkspaceTreeContext);
|
|
183
|
-
const {
|
|
184
|
-
treeNodeSlot
|
|
185
|
-
} = this;
|
|
186
|
-
const showDeprecatedComponents = activeFilters.find(activeFilter => activeFilter === 'deprecate');
|
|
187
|
-
const TreeNodeRenderer = (0, _react().useCallback)(function TreeNode(props) {
|
|
188
|
-
const children = props.node.children;
|
|
189
|
-
if (!children) return /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().ComponentView, (0, _extends2().default)({}, props, {
|
|
190
|
-
treeNodeSlot: treeNodeSlot
|
|
191
|
-
})); // non collapse
|
|
192
|
-
|
|
193
|
-
if (props.node.payload instanceof _uiFoundationUi2().ScopePayload) return /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().ScopeTreeNode, props);
|
|
194
|
-
return /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().NamespaceTreeNode, props);
|
|
195
|
-
}, [treeNodeSlot]);
|
|
196
|
-
if (!workspace) return /*#__PURE__*/_react().default.createElement(_uiFoundationUi().FullLoader, null);
|
|
197
|
-
const components = showDeprecatedComponents ? workspace.components : workspace.components.filter(component => {
|
|
198
|
-
var _component$deprecatio;
|
|
199
|
-
|
|
200
|
-
return !((_component$deprecatio = component.deprecation) !== null && _component$deprecatio !== void 0 && _component$deprecatio.isDeprecate);
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
if (components.length === 0) {
|
|
204
|
-
return /*#__PURE__*/_react().default.createElement("span", {
|
|
205
|
-
className: (0, _classnames().default)(_designUiStyles().mutedItalic, _designUiStyles2().ellipsis, _workspaceComponentsDrawerModule().default.emptyWorkspace)
|
|
206
|
-
}, "Workspace is empty");
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
return /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().ComponentTree, {
|
|
210
|
-
components: components,
|
|
211
|
-
isCollapsed: collapsed,
|
|
212
|
-
TreeNode: TreeNodeRenderer
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
exports.WorkspaceComponentsDrawer = WorkspaceComponentsDrawer;
|
|
220
|
-
|
|
221
|
-
function TreeToggleWidget() {
|
|
222
|
-
const {
|
|
223
|
-
collapsed,
|
|
224
|
-
setCollapsed
|
|
225
|
-
} = (0, _react().useContext)(WorkspaceTreeContext);
|
|
226
|
-
const icon = collapsed ? 'https://static.bit.dev/bit-icons/expand.svg' : 'https://static.bit.dev/bit-icons/collapse.svg';
|
|
227
|
-
return /*#__PURE__*/_react().default.createElement("div", {
|
|
228
|
-
className: _workspaceComponentsDrawerModule().default.widgetIcon
|
|
229
|
-
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
230
|
-
src: icon,
|
|
231
|
-
onClick: () => setCollapsed(!collapsed)
|
|
232
|
-
}));
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
function FilterWidget() {
|
|
236
|
-
const {
|
|
237
|
-
filterOpen,
|
|
238
|
-
setFilterOpen
|
|
239
|
-
} = (0, _react().useContext)(WorkspaceTreeContext);
|
|
240
|
-
return /*#__PURE__*/_react().default.createElement("div", {
|
|
241
|
-
className: (0, _classnames().default)(_workspaceComponentsDrawerModule().default.widgetIcon, _workspaceComponentsDrawerModule().default.filterWidgetIcon, filterOpen && _workspaceComponentsDrawerModule().default.open)
|
|
242
|
-
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
243
|
-
src: "https://static.bit.dev/bit-icons/filter.svg",
|
|
244
|
-
onClick: () => setFilterOpen(!filterOpen)
|
|
245
|
-
}));
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
function DeprecateFilter() {
|
|
249
|
-
const {
|
|
250
|
-
activeFilters,
|
|
251
|
-
setActiveFilter,
|
|
252
|
-
filterOpen
|
|
253
|
-
} = (0, _react().useContext)(WorkspaceTreeContext);
|
|
254
|
-
const isActive = activeFilters.includes('deprecate');
|
|
255
|
-
if (!filterOpen) return null;
|
|
256
|
-
return /*#__PURE__*/_react().default.createElement("div", {
|
|
257
|
-
className: (0, _classnames().default)(_workspaceComponentsDrawerModule().default.deprecateFilter, isActive && _workspaceComponentsDrawerModule().default.active)
|
|
258
|
-
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
259
|
-
className: _workspaceComponentsDrawerModule().default.filterIcon
|
|
260
|
-
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
261
|
-
src: "https://static.bit.dev/bit-icons/deprecated.svg"
|
|
262
|
-
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
263
|
-
className: _workspaceComponentsDrawerModule().default.filterIconLabel
|
|
264
|
-
}, "Deprecated")), /*#__PURE__*/_react().default.createElement("div", null, /*#__PURE__*/_react().default.createElement(_designUiInput().Toggle, {
|
|
265
|
-
checked: isActive,
|
|
266
|
-
onInputChanged: () => setActiveFilter('deprecate')
|
|
267
|
-
})));
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
//# sourceMappingURL=workspace-components.drawer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["workspace-components.drawer.tsx"],"names":["WorkspaceTreeContext","collapsed","setCollapsed","activeFilters","setActiveFilter","filterOpen","setFilterOpen","WorkspaceComponentsDrawer","constructor","treeNodeSlot","children","setActiveFilters","handleActiveFilterToggle","filterId","isFilterActive","includes","list","filter","id","concat","workspace","WorkspaceContext","showDeprecatedComponents","find","activeFilter","TreeNodeRenderer","TreeNode","props","node","payload","ScopePayload","components","component","deprecation","isDeprecate","length","mutedItalic","ellipsis","styles","emptyWorkspace","TreeToggleWidget","icon","widgetIcon","FilterWidget","filterWidgetIcon","open","DeprecateFilter","isActive","deprecateFilter","active","filterIcon","filterIconLabel"],"mappings":"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","sourcesContent":["import type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { FullLoader } from '@teambit/ui-foundation.ui.full-loader';\nimport {\n ComponentTree,\n PayloadType,\n ComponentView,\n ScopeTreeNode,\n NamespaceTreeNode,\n ScopePayload,\n} from '@teambit/ui-foundation.ui.side-bar';\nimport { TreeNodeProps } from '@teambit/design.ui.tree';\nimport React, { useCallback, useContext, useState, createContext } from 'react';\nimport classNames from 'classnames';\nimport { ComponentTreeSlot } from '@teambit/component-tree';\nimport { mutedItalic } from '@teambit/design.ui.styles.muted-italic';\nimport { ellipsis } from '@teambit/design.ui.styles.ellipsis';\nimport { Toggle } from '@teambit/design.ui.input.toggle';\nimport { WorkspaceContext } from '../workspace/workspace-context';\nimport styles from './workspace-components-drawer.module.scss';\n\ntype WorkspaceTreeContextType = {\n collapsed: boolean;\n setCollapsed: (x: boolean) => void;\n filterOpen: boolean;\n setFilterOpen: (open: boolean) => void;\n activeFilters: string[];\n setActiveFilter: (filterId: string) => void;\n};\nconst WorkspaceTreeContext = createContext<WorkspaceTreeContextType>({\n collapsed: true,\n setCollapsed: () => {},\n activeFilters: [],\n setActiveFilter: () => {},\n filterOpen: false,\n setFilterOpen: () => {},\n});\n\nexport class WorkspaceComponentsDrawer implements DrawerType {\n constructor(private treeNodeSlot: ComponentTreeSlot) {}\n\n id = 'workspace-components';\n name = 'COMPONENTS';\n\n widgets = [<FilterWidget key={'filter-widget'} />, <TreeToggleWidget key={'tree-toggle-widget'} />];\n\n Context = ({ children }) => {\n const [collapsed, setCollapsed] = useState(true);\n const [activeFilters, setActiveFilters] = useState<string[]>([]);\n const [filterOpen, setFilterOpen] = useState<boolean>(false);\n\n const handleActiveFilterToggle = (filterId: string) => {\n const isFilterActive = activeFilters.includes(filterId);\n if (isFilterActive) {\n setActiveFilters((list) => list.filter((id) => id !== filterId));\n return;\n }\n setActiveFilters((list) => list.concat(filterId));\n };\n\n return (\n <WorkspaceTreeContext.Provider\n value={{\n collapsed,\n setCollapsed,\n activeFilters,\n setActiveFilter: handleActiveFilterToggle,\n filterOpen,\n setFilterOpen,\n }}\n >\n {children}\n </WorkspaceTreeContext.Provider>\n );\n };\n\n Filters = [<DeprecateFilter key={'deprecate-filter'} />];\n\n render = () => {\n const workspace = useContext(WorkspaceContext);\n const { collapsed, activeFilters } = useContext(WorkspaceTreeContext);\n const { treeNodeSlot } = this;\n const showDeprecatedComponents = activeFilters.find((activeFilter) => activeFilter === 'deprecate');\n\n const TreeNodeRenderer = useCallback(\n function TreeNode(props: TreeNodeProps<PayloadType>) {\n const children = props.node.children;\n\n if (!children) return <ComponentView {...props} treeNodeSlot={treeNodeSlot} />; // non collapse\n\n if (props.node.payload instanceof ScopePayload) return <ScopeTreeNode {...props} />;\n\n return <NamespaceTreeNode {...props} />;\n },\n [treeNodeSlot]\n );\n\n if (!workspace) return <FullLoader />;\n\n const components = showDeprecatedComponents\n ? workspace.components\n : workspace.components.filter((component) => !component.deprecation?.isDeprecate);\n\n if (components.length === 0) {\n return <span className={classNames(mutedItalic, ellipsis, styles.emptyWorkspace)}>Workspace is empty</span>;\n }\n\n return <ComponentTree components={components} isCollapsed={collapsed} TreeNode={TreeNodeRenderer} />;\n };\n}\n\nfunction TreeToggleWidget() {\n const { collapsed, setCollapsed } = useContext(WorkspaceTreeContext);\n const icon = collapsed\n ? 'https://static.bit.dev/bit-icons/expand.svg'\n : 'https://static.bit.dev/bit-icons/collapse.svg';\n return (\n <div className={styles.widgetIcon}>\n <img src={icon} onClick={() => setCollapsed(!collapsed)} />\n </div>\n );\n}\n\nfunction FilterWidget() {\n const { filterOpen, setFilterOpen } = useContext(WorkspaceTreeContext);\n return (\n <div className={classNames(styles.widgetIcon, styles.filterWidgetIcon, filterOpen && styles.open)}>\n <img src=\"https://static.bit.dev/bit-icons/filter.svg\" onClick={() => setFilterOpen(!filterOpen)} />\n </div>\n );\n}\n\nfunction DeprecateFilter() {\n const { activeFilters, setActiveFilter, filterOpen } = useContext(WorkspaceTreeContext);\n const isActive = activeFilters.includes('deprecate');\n\n if (!filterOpen) return null;\n\n return (\n <div className={classNames(styles.deprecateFilter, isActive && styles.active)}>\n <div className={styles.filterIcon}>\n <img src=\"https://static.bit.dev/bit-icons/deprecated.svg\" />\n <span className={styles.filterIconLabel}>Deprecated</span>\n </div>\n <div>\n <Toggle checked={isActive} onInputChanged={() => setActiveFilter('deprecate')} />\n </div>\n </div>\n );\n}\n"]}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { WorkspaceComponentsDrawer } from './workspace-components.drawer';
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
.emptyWorkspace {
|
|
2
|
-
padding: 8px 8px 0 28px;
|
|
3
|
-
display: block;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.widgetIcon {
|
|
7
|
-
padding: 4px;
|
|
8
|
-
border-radius: 8px;
|
|
9
|
-
align-items: center;
|
|
10
|
-
display: flex;
|
|
11
|
-
&:hover,
|
|
12
|
-
&.open {
|
|
13
|
-
background-color: var(--bit-border-color-lightest, #ededed);
|
|
14
|
-
}
|
|
15
|
-
img {
|
|
16
|
-
width: 16px;
|
|
17
|
-
}
|
|
18
|
-
&:active img,
|
|
19
|
-
&.open img {
|
|
20
|
-
filter: invert(38%) sepia(33%) saturate(7140%) hue-rotate(234deg) brightness(96%) contrast(87%);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.filterWidgetIcon {
|
|
25
|
-
margin-right: 8px;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.deprecateFilter {
|
|
29
|
-
display: flex;
|
|
30
|
-
flex-direction: row;
|
|
31
|
-
font-size: 14px;
|
|
32
|
-
justify-content: space-between;
|
|
33
|
-
padding: 8px;
|
|
34
|
-
margin: 4px 8px;
|
|
35
|
-
|
|
36
|
-
> div {
|
|
37
|
-
line-height: 16px;
|
|
38
|
-
display: flex;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.filterIcon {
|
|
42
|
-
img {
|
|
43
|
-
width: 16px;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.filterIconLabel {
|
|
47
|
-
margin: 0px 8px;
|
|
48
|
-
font-size: 14px;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
|
|
2
|
-
import { FullLoader } from '@teambit/ui-foundation.ui.full-loader';
|
|
3
|
-
import {
|
|
4
|
-
ComponentTree,
|
|
5
|
-
PayloadType,
|
|
6
|
-
ComponentView,
|
|
7
|
-
ScopeTreeNode,
|
|
8
|
-
NamespaceTreeNode,
|
|
9
|
-
ScopePayload,
|
|
10
|
-
} from '@teambit/ui-foundation.ui.side-bar';
|
|
11
|
-
import { TreeNodeProps } from '@teambit/design.ui.tree';
|
|
12
|
-
import React, { useCallback, useContext, useState, createContext } from 'react';
|
|
13
|
-
import classNames from 'classnames';
|
|
14
|
-
import { ComponentTreeSlot } from '@teambit/component-tree';
|
|
15
|
-
import { mutedItalic } from '@teambit/design.ui.styles.muted-italic';
|
|
16
|
-
import { ellipsis } from '@teambit/design.ui.styles.ellipsis';
|
|
17
|
-
import { Toggle } from '@teambit/design.ui.input.toggle';
|
|
18
|
-
import { WorkspaceContext } from '../workspace/workspace-context';
|
|
19
|
-
import styles from './workspace-components-drawer.module.scss';
|
|
20
|
-
|
|
21
|
-
type WorkspaceTreeContextType = {
|
|
22
|
-
collapsed: boolean;
|
|
23
|
-
setCollapsed: (x: boolean) => void;
|
|
24
|
-
filterOpen: boolean;
|
|
25
|
-
setFilterOpen: (open: boolean) => void;
|
|
26
|
-
activeFilters: string[];
|
|
27
|
-
setActiveFilter: (filterId: string) => void;
|
|
28
|
-
};
|
|
29
|
-
const WorkspaceTreeContext = createContext<WorkspaceTreeContextType>({
|
|
30
|
-
collapsed: true,
|
|
31
|
-
setCollapsed: () => {},
|
|
32
|
-
activeFilters: [],
|
|
33
|
-
setActiveFilter: () => {},
|
|
34
|
-
filterOpen: false,
|
|
35
|
-
setFilterOpen: () => {},
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
export class WorkspaceComponentsDrawer implements DrawerType {
|
|
39
|
-
constructor(private treeNodeSlot: ComponentTreeSlot) {}
|
|
40
|
-
|
|
41
|
-
id = 'workspace-components';
|
|
42
|
-
name = 'COMPONENTS';
|
|
43
|
-
|
|
44
|
-
widgets = [<FilterWidget key={'filter-widget'} />, <TreeToggleWidget key={'tree-toggle-widget'} />];
|
|
45
|
-
|
|
46
|
-
Context = ({ children }) => {
|
|
47
|
-
const [collapsed, setCollapsed] = useState(true);
|
|
48
|
-
const [activeFilters, setActiveFilters] = useState<string[]>([]);
|
|
49
|
-
const [filterOpen, setFilterOpen] = useState<boolean>(false);
|
|
50
|
-
|
|
51
|
-
const handleActiveFilterToggle = (filterId: string) => {
|
|
52
|
-
const isFilterActive = activeFilters.includes(filterId);
|
|
53
|
-
if (isFilterActive) {
|
|
54
|
-
setActiveFilters((list) => list.filter((id) => id !== filterId));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
setActiveFilters((list) => list.concat(filterId));
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
return (
|
|
61
|
-
<WorkspaceTreeContext.Provider
|
|
62
|
-
value={{
|
|
63
|
-
collapsed,
|
|
64
|
-
setCollapsed,
|
|
65
|
-
activeFilters,
|
|
66
|
-
setActiveFilter: handleActiveFilterToggle,
|
|
67
|
-
filterOpen,
|
|
68
|
-
setFilterOpen,
|
|
69
|
-
}}
|
|
70
|
-
>
|
|
71
|
-
{children}
|
|
72
|
-
</WorkspaceTreeContext.Provider>
|
|
73
|
-
);
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
Filters = [<DeprecateFilter key={'deprecate-filter'} />];
|
|
77
|
-
|
|
78
|
-
render = () => {
|
|
79
|
-
const workspace = useContext(WorkspaceContext);
|
|
80
|
-
const { collapsed, activeFilters } = useContext(WorkspaceTreeContext);
|
|
81
|
-
const { treeNodeSlot } = this;
|
|
82
|
-
const showDeprecatedComponents = activeFilters.find((activeFilter) => activeFilter === 'deprecate');
|
|
83
|
-
|
|
84
|
-
const TreeNodeRenderer = useCallback(
|
|
85
|
-
function TreeNode(props: TreeNodeProps<PayloadType>) {
|
|
86
|
-
const children = props.node.children;
|
|
87
|
-
|
|
88
|
-
if (!children) return <ComponentView {...props} treeNodeSlot={treeNodeSlot} />; // non collapse
|
|
89
|
-
|
|
90
|
-
if (props.node.payload instanceof ScopePayload) return <ScopeTreeNode {...props} />;
|
|
91
|
-
|
|
92
|
-
return <NamespaceTreeNode {...props} />;
|
|
93
|
-
},
|
|
94
|
-
[treeNodeSlot]
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
if (!workspace) return <FullLoader />;
|
|
98
|
-
|
|
99
|
-
const components = showDeprecatedComponents
|
|
100
|
-
? workspace.components
|
|
101
|
-
: workspace.components.filter((component) => !component.deprecation?.isDeprecate);
|
|
102
|
-
|
|
103
|
-
if (components.length === 0) {
|
|
104
|
-
return <span className={classNames(mutedItalic, ellipsis, styles.emptyWorkspace)}>Workspace is empty</span>;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return <ComponentTree components={components} isCollapsed={collapsed} TreeNode={TreeNodeRenderer} />;
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function TreeToggleWidget() {
|
|
112
|
-
const { collapsed, setCollapsed } = useContext(WorkspaceTreeContext);
|
|
113
|
-
const icon = collapsed
|
|
114
|
-
? 'https://static.bit.dev/bit-icons/expand.svg'
|
|
115
|
-
: 'https://static.bit.dev/bit-icons/collapse.svg';
|
|
116
|
-
return (
|
|
117
|
-
<div className={styles.widgetIcon}>
|
|
118
|
-
<img src={icon} onClick={() => setCollapsed(!collapsed)} />
|
|
119
|
-
</div>
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function FilterWidget() {
|
|
124
|
-
const { filterOpen, setFilterOpen } = useContext(WorkspaceTreeContext);
|
|
125
|
-
return (
|
|
126
|
-
<div className={classNames(styles.widgetIcon, styles.filterWidgetIcon, filterOpen && styles.open)}>
|
|
127
|
-
<img src="https://static.bit.dev/bit-icons/filter.svg" onClick={() => setFilterOpen(!filterOpen)} />
|
|
128
|
-
</div>
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function DeprecateFilter() {
|
|
133
|
-
const { activeFilters, setActiveFilter, filterOpen } = useContext(WorkspaceTreeContext);
|
|
134
|
-
const isActive = activeFilters.includes('deprecate');
|
|
135
|
-
|
|
136
|
-
if (!filterOpen) return null;
|
|
137
|
-
|
|
138
|
-
return (
|
|
139
|
-
<div className={classNames(styles.deprecateFilter, isActive && styles.active)}>
|
|
140
|
-
<div className={styles.filterIcon}>
|
|
141
|
-
<img src="https://static.bit.dev/bit-icons/deprecated.svg" />
|
|
142
|
-
<span className={styles.filterIconLabel}>Deprecated</span>
|
|
143
|
-
</div>
|
|
144
|
-
<div>
|
|
145
|
-
<Toggle checked={isActive} onInputChanged={() => setActiveFilter('deprecate')} />
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
);
|
|
149
|
-
}
|