@@ -5,36 +5,31 @@ import {
55 FundFilled ,
66} from '@ant-design/icons' ;
77import ChartManager from 'app/pages/ChartWorkbenchPage/models/ChartManager' ;
8- import { IChart } from 'app/types/Chart' ;
9- import React , { useCallback , useMemo , useState } from 'react' ;
8+ import React , { useCallback } from 'react' ;
109import styled from 'styled-components/macro' ;
1110import { FONT_SIZE_TITLE } from 'styles/StyleConstants' ;
1211
1312function useGetVizIcon ( ) {
1413 const chartManager = ChartManager . instance ( ) ;
15- const [ allCharts ] = useState < IChart [ ] > ( chartManager . getAllCharts ( ) ) ;
16- const chartsIcon = useMemo ( ( ) => {
17- let iconObj = { } ;
18- allCharts . forEach ( v => {
19- iconObj [ v . meta . id ] = v . meta . icon ;
20- } ) ;
21- return iconObj ;
22- } , [ allCharts ] ) ;
14+ const chartIcons = chartManager . getAllChartIcons ( ) ;
2315
24- return useCallback ( ( { relType, avatar, subType } ) => {
25- switch ( relType ) {
26- case 'DASHBOARD' :
27- return subType !== null ? (
28- renderIcon ( subType === 'free' ? 'CombinedShape' : 'kanban' )
29- ) : (
30- < FundFilled />
31- ) ;
32- case 'DATACHART' :
33- return avatar ? renderIcon ( chartsIcon [ avatar ] ) : < BarChartOutlined /> ;
34- default :
35- return p => ( p . expanded ? < FolderOpenFilled /> : < FolderFilled /> ) ;
36- }
37- } , [ ] ) ;
16+ return useCallback (
17+ ( { relType, avatar, subType } ) => {
18+ switch ( relType ) {
19+ case 'DASHBOARD' :
20+ return subType !== null ? (
21+ renderIcon ( subType === 'free' ? 'CombinedShape' : 'kanban' )
22+ ) : (
23+ < FundFilled />
24+ ) ;
25+ case 'DATACHART' :
26+ return avatar ? renderIcon ( chartIcons [ avatar ] ) : < BarChartOutlined /> ;
27+ default :
28+ return p => ( p . expanded ? < FolderOpenFilled /> : < FolderFilled /> ) ;
29+ }
30+ } ,
31+ [ chartIcons ] ,
32+ ) ;
3833}
3934
4035export default useGetVizIcon ;
0 commit comments