|
1 | 1 | import * as React from 'react';
|
2 |
| -import { prefixClaName } from 'mo/common/className'; |
| 2 | +import { getBEMElement, prefixClaName } from 'mo/common/className'; |
3 | 3 | import TreeView from 'mo/components/tree';
|
| 4 | +import { localize } from 'mo/i18n/localize'; |
4 | 5 |
|
5 | 6 | const defaultClassName = prefixClaName('problems');
|
| 7 | +const treeClassName = getBEMElement(defaultClassName, 'treeview'); |
| 8 | +const treeNodeClassName = getBEMElement(treeClassName, 'treeNode'); |
| 9 | +const treeNodeBadgeClassName = getBEMElement(treeNodeClassName, 'badge'); |
| 10 | +const treeLeafClassName = getBEMElement(treeClassName, 'treeLeaf'); |
| 11 | +const treeLeafSubInfoClassName = getBEMElement(treeLeafClassName, 'subInfo'); |
6 | 12 |
|
7 | 13 | function ProblemsPaneView(props: any) {
|
8 | 14 | const { data } = props;
|
9 |
| - const renderTitle = (item: any): any => { |
10 |
| - const { name, children, value } = item; |
| 15 | + if (!data?.length) |
11 | 16 | return (
|
12 |
| - <span> |
13 |
| - {children && children.length ? name : value.code}{' '} |
14 |
| - <span>({children.length})</span> |
15 |
| - </span> |
| 17 | + <div style={{ margin: '0 18px', userSelect: 'none' }}> |
| 18 | + {localize( |
| 19 | + 'panel.problems.empty', |
| 20 | + 'No problems have been detected in the workspace.' |
| 21 | + )} |
| 22 | + </div> |
16 | 23 | );
|
17 |
| - }; |
| 24 | + |
18 | 25 | return (
|
19 | 26 | <div className={defaultClassName}>
|
20 |
| - <TreeView data={data} renderTitle={renderTitle} /> |
| 27 | + <TreeView |
| 28 | + className={treeClassName} |
| 29 | + data={data} |
| 30 | + renderTitle={({ children, name, value }, _, isLeaf) => { |
| 31 | + return !isLeaf ? ( |
| 32 | + <span className={treeNodeClassName}> |
| 33 | + {value.code} |
| 34 | + <span className={treeNodeBadgeClassName}> |
| 35 | + {children?.length} |
| 36 | + </span> |
| 37 | + </span> |
| 38 | + ) : ( |
| 39 | + <span className={treeLeafClassName}> |
| 40 | + {value.message} |
| 41 | + <span className={treeLeafSubInfoClassName}> |
| 42 | + {value.code} |
| 43 | + </span> |
| 44 | + <span className={treeLeafSubInfoClassName}> |
| 45 | + [{value.startLineNumber}, {value.startColumn}] |
| 46 | + </span> |
| 47 | + </span> |
| 48 | + ); |
| 49 | + }} |
| 50 | + /> |
21 | 51 | </div>
|
22 | 52 | );
|
23 | 53 | }
|
|
0 commit comments