@@ -7,16 +7,19 @@ import MuiTable from '@mui/material/Table';
7
7
import MuiTableBody from '@mui/material/TableBody' ;
8
8
import MuiTableContainer from '@mui/material/TableContainer' ;
9
9
import { orderBy , upperFirst } from 'lodash' ;
10
- import { useMemo , useState } from 'react' ;
10
+ import { useCallback , useMemo , useState } from 'react' ;
11
11
12
12
import { text } from '../../../shared/text' ;
13
+ import { useShowClassifications } from '../../state/variables/use-show-classifications' ;
14
+ import { useShowCriticality } from '../../state/variables/use-show-criticality' ;
13
15
import {
14
16
LicenseCounts ,
15
17
LicenseNamesWithClassification ,
16
18
LicenseNamesWithCriticality ,
17
19
} from '../../types/types' ;
18
20
import { Order } from '../TableCellWithSorting/TableCellWithSorting' ;
19
21
import {
22
+ Column ,
20
23
ColumnConfig ,
21
24
orderLicenseNames ,
22
25
SingleColumn ,
@@ -32,7 +35,7 @@ const classes = {
32
35
} ,
33
36
} ;
34
37
35
- interface AttributionCountPerSourcePerLicenseTableProps {
38
+ export interface AttributionCountPerSourcePerLicenseTableProps {
36
39
licenseCounts : LicenseCounts ;
37
40
licenseNamesWithCriticality : LicenseNamesWithCriticality ;
38
41
licenseNamesWithClassification : LicenseNamesWithClassification ;
@@ -47,6 +50,39 @@ export const AttributionCountPerSourcePerLicenseTable: React.FC<
47
50
props . licenseCounts . totalAttributionsPerSource ,
48
51
) ;
49
52
53
+ const showCriticality = useShowCriticality ( ) ;
54
+ const showClassifications = useShowClassifications ( ) ;
55
+
56
+ const getCriticalityColumn = useCallback ( ( ) : Array < Column > => {
57
+ if ( showCriticality ) {
58
+ return [
59
+ {
60
+ columnName : componentText . columns . criticality . title ,
61
+ columnType : SingleColumn . CRITICALITY ,
62
+ columnId : SingleColumn . CRITICALITY ,
63
+ align : 'center' ,
64
+ defaultOrder : 'desc' ,
65
+ } ,
66
+ ] ;
67
+ }
68
+ return [ ] ;
69
+ } , [ componentText . columns . criticality . title , showCriticality ] ) ;
70
+
71
+ const getClassificationColumn = useCallback ( ( ) : Array < Column > => {
72
+ if ( showClassifications ) {
73
+ return [
74
+ {
75
+ columnName : componentText . columns . classification ,
76
+ columnType : SingleColumn . CLASSIFICATION ,
77
+ columnId : SingleColumn . CLASSIFICATION ,
78
+ align : 'center' ,
79
+ defaultOrder : 'desc' ,
80
+ } ,
81
+ ] ;
82
+ }
83
+ return [ ] ;
84
+ } , [ componentText . columns . classification , showClassifications ] ) ;
85
+
50
86
const columnConfig : ColumnConfig = useMemo (
51
87
( ) =>
52
88
new ColumnConfig ( [
@@ -60,20 +96,8 @@ export const AttributionCountPerSourcePerLicenseTable: React.FC<
60
96
align : 'left' ,
61
97
defaultOrder : 'asc' ,
62
98
} ,
63
- {
64
- columnName : componentText . columns . criticality . title ,
65
- columnType : SingleColumn . CRITICALITY ,
66
- columnId : SingleColumn . CRITICALITY ,
67
- align : 'center' ,
68
- defaultOrder : 'desc' ,
69
- } ,
70
- {
71
- columnName : componentText . columns . classification ,
72
- columnType : SingleColumn . CLASSIFICATION ,
73
- columnId : SingleColumn . CLASSIFICATION ,
74
- align : 'center' ,
75
- defaultOrder : 'desc' ,
76
- } ,
99
+ ...getCriticalityColumn ( ) ,
100
+ ...getClassificationColumn ( ) ,
77
101
] ,
78
102
} ,
79
103
{
@@ -96,7 +120,15 @@ export const AttributionCountPerSourcePerLicenseTable: React.FC<
96
120
] ,
97
121
} ,
98
122
] ) ,
99
- [ sourceNames , componentText ] ,
123
+ [
124
+ componentText . columns . licenseInfo ,
125
+ componentText . columns . licenseName ,
126
+ componentText . columns . classification ,
127
+ componentText . columns . signalCountPerSource ,
128
+ componentText . columns . totalSources ,
129
+ getCriticalityColumn ,
130
+ sourceNames ,
131
+ ] ,
100
132
) ;
101
133
102
134
const [ ordering , setOrdering ] = useState < TableOrdering > ( {
0 commit comments