@teambit/workspace 0.0.685 → 0.0.686

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.
Files changed (27) hide show
  1. package/dist/workspace.provider.js +0 -11
  2. package/dist/workspace.provider.js.map +1 -1
  3. package/dist/workspace.ui.drawer.d.ts +8 -0
  4. package/dist/workspace.ui.drawer.js +65 -0
  5. package/dist/workspace.ui.drawer.js.map +1 -0
  6. package/dist/workspace.ui.runtime.d.ts +16 -4
  7. package/dist/workspace.ui.runtime.js +46 -8
  8. package/dist/workspace.ui.runtime.js.map +1 -1
  9. package/package-tar/teambit-workspace-0.0.686.tgz +0 -0
  10. package/package.json +32 -40
  11. package/{preview-1648006106088.js → preview-1648092203429.js} +2 -2
  12. package/workspace.ui.drawer.tsx +32 -0
  13. package/workspace.ui.runtime.tsx +47 -5
  14. package/dist/tag-cmd.d.ts +0 -29
  15. package/dist/tag-cmd.js +0 -312
  16. package/dist/tag-cmd.js.map +0 -1
  17. package/dist/ui/workspace-components-drawer/index.d.ts +0 -1
  18. package/dist/ui/workspace-components-drawer/index.js +0 -23
  19. package/dist/ui/workspace-components-drawer/index.js.map +0 -1
  20. package/dist/ui/workspace-components-drawer/workspace-components-drawer.module.scss +0 -51
  21. package/dist/ui/workspace-components-drawer/workspace-components.drawer.d.ts +0 -15
  22. package/dist/ui/workspace-components-drawer/workspace-components.drawer.js +0 -270
  23. package/dist/ui/workspace-components-drawer/workspace-components.drawer.js.map +0 -1
  24. package/package-tar/teambit-workspace-0.0.685.tgz +0 -0
  25. package/ui/workspace-components-drawer/index.ts +0 -1
  26. package/ui/workspace-components-drawer/workspace-components-drawer.module.scss +0 -51
  27. 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"]}
@@ -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
- }