1- import React , { useEffect } from ' react'
2- import { Badge } from ' react-bootstrap' ;
3- import ReactJson from ' @microlink/react-json-view' ;
4- import { FontAwesomeIcon } from ' @fortawesome/react-fontawesome' ;
5- import { faCheck , faCogs } from ' @fortawesome/free-solid-svg-icons' ;
1+ import React , { useEffect } from " react" ;
2+ import { Badge } from " react-bootstrap" ;
3+ import ReactJson from " @microlink/react-json-view" ;
4+ import { FontAwesomeIcon } from " @fortawesome/react-fontawesome" ;
5+ import { faCheck , faCogs } from " @fortawesome/free-solid-svg-icons" ;
66
7- import { DependencyDetails } from ' ../../pages/Packages/packageDefinitions'
8- import { DependencyScopeMapping } from ' ./dependencyScopeMapper' ;
7+ import { DependencyDetails } from " ../../pages/Packages/packageDefinitions" ;
8+ import { DependencyScopeMapping } from " ./dependencyScopeMapper" ;
99
10- import ' ../../styles/entityCommonStyles.css' ;
11- import ' ./dependencyEntity.css'
10+ import " ../../styles/entityCommonStyles.css" ;
11+ import " ./dependencyEntity.css" ;
1212
1313interface DependencyEntityProps {
14- dependency : DependencyDetails ,
15- goToPackageByUID : ( package_uid : string ) => void ,
14+ dependency : DependencyDetails ;
15+ goToPackageByUID : ( package_uid : string ) => void ;
16+ goToFileInTableView : ( file_path : string ) => void ;
1617}
1718const DependencyEntity = ( props : DependencyEntityProps ) => {
18- const { goToPackageByUID, dependency : dependency } = props ;
19+ const { goToPackageByUID, goToFileInTableView , dependency } = props ;
1920
2021 useEffect ( ( ) => {
2122 console . log ( "Active dep" , dependency ) ;
22- } , [ dependency ] )
23+ } , [ dependency ] ) ;
2324
24- if ( ! dependency ) {
25+ if ( ! dependency ) {
2526 return (
2627 < div >
27- < h5 >
28- No dependency data found !!
29- </ h5 >
28+ < h5 > No dependency data found !!</ h5 >
3029 </ div >
31- )
30+ ) ;
3231 }
3332 return (
34- < div className = 'dependency-entity' >
35- < h5 >
36- { dependency . purl }
37- </ h5 >
38- {
39- dependency . is_runtime ?
40- < Badge pill bg = "primary" >
41- < FontAwesomeIcon icon = { faCogs } />
42- { ' ' } Runtime
43- </ Badge >
44- : dependency . is_optional ?
45- < Badge pill bg = "dark" >
46- {
47- DependencyScopeMapping [ dependency . scope ] ?
48- < >
49- < FontAwesomeIcon icon = { DependencyScopeMapping [ dependency . scope ] . icon } />
50- { " " } { DependencyScopeMapping [ dependency . scope ] . text }
51- </ >
52- : dependency . scope || "Optional"
53- }
54- </ Badge >
55- : ""
56- }
57- {
58- dependency . is_resolved &&
33+ < div className = "dependency-entity" >
34+ < h5 > { dependency . purl } </ h5 >
35+ { dependency . is_runtime ? (
36+ < Badge pill bg = "primary" >
37+ < FontAwesomeIcon icon = { faCogs } /> Runtime
38+ </ Badge >
39+ ) : dependency . is_optional ? (
40+ < Badge pill bg = "dark" >
41+ { DependencyScopeMapping [ dependency . scope ] ? (
42+ < >
43+ < FontAwesomeIcon
44+ icon = { DependencyScopeMapping [ dependency . scope ] . icon }
45+ /> { " " }
46+ { DependencyScopeMapping [ dependency . scope ] . text }
47+ </ >
48+ ) : (
49+ dependency . scope || "Optional"
50+ ) }
51+ </ Badge >
52+ ) : (
53+ ""
54+ ) }
55+ { dependency . is_resolved && (
5956 < Badge pill bg = "success" >
60- < FontAwesomeIcon icon = { faCheck } />
61- { ' ' } Resolved
57+ < FontAwesomeIcon icon = { faCheck } /> Resolved
6258 </ Badge >
63- }
64- < br />
65- < br />
66- < div className = ' entity-properties' >
67- {
59+ ) }
60+ < br />
61+ < br />
62+ < div className = " entity-properties" >
63+ { [
6864 [
69- [
70- "For:" ,
71- dependency . for_package_uid ?
65+ "For:" ,
66+ dependency . for_package_uid ? (
7267 < a onClick = { ( ) => goToPackageByUID ( dependency . for_package_uid ) } >
73- { dependency . for_package_uid || "NA" }
68+ { dependency . for_package_uid }
7469 </ a >
75- : < > NA</ >
76- ] ,
77- [ "Scope:" , dependency . scope || "NA" ] ,
78- [ "Extracted requirement:" , dependency . extracted_requirement || "NA" ] ,
79- [ "Data file:" , dependency . datafile_path || "NA" ] ,
80- [ "Data source ID" , dependency . datasource_id || "NA" ] ,
81- ] . map ( entry => (
82- < React . Fragment key = { entry [ 0 ] . toString ( ) } >
83- < span className = 'property' >
84- { entry [ 0 ] || "" }
85- </ span >
86- < span className = 'value' >
87- { entry [ 1 ] || "" }
88- </ span >
89- < br />
90- </ React . Fragment >
91- ) )
92- }
70+ ) : (
71+ < > NA</ >
72+ ) ,
73+ ] ,
74+ [ "Scope:" , dependency . scope || "NA" ] ,
75+ [ "Extracted requirement:" , dependency . extracted_requirement || "NA" ] ,
76+ [
77+ "Data file:" ,
78+ dependency . datafile_path ? (
79+ < a onClick = { ( ) => goToFileInTableView ( dependency . datafile_path ) } >
80+ { dependency . datafile_path }
81+ </ a >
82+ ) : (
83+ < > NA</ >
84+ ) ,
85+ ] ,
86+ [ "Data source ID" , dependency . datasource_id || "NA" ] ,
87+ ] . map ( ( entry ) => (
88+ < React . Fragment key = { entry [ 0 ] . toString ( ) } >
89+ < span className = "property" > { entry [ 0 ] || "" } </ span >
90+ < span className = "value" > { entry [ 1 ] || "" } </ span >
91+ < br />
92+ </ React . Fragment >
93+ ) ) }
9394 </ div >
94- < br />
95- {
96- dependency . is_resolved && dependency . resolved_package &&
95+ < br />
96+ { dependency . is_resolved && dependency . resolved_package && (
9797 < div >
9898 Resolved package:
9999 < ReactJson
@@ -103,8 +103,8 @@ const DependencyEntity = (props: DependencyEntityProps) => {
103103 collapsed = { 0 }
104104 />
105105 </ div >
106- }
107- < br />
106+ ) }
107+ < br />
108108 Raw package:
109109 < ReactJson
110110 src = { dependency || { } }
@@ -113,7 +113,7 @@ const DependencyEntity = (props: DependencyEntityProps) => {
113113 collapsed = { 0 }
114114 />
115115 </ div >
116- )
117- }
116+ ) ;
117+ } ;
118118
119- export default DependencyEntity
119+ export default DependencyEntity ;
0 commit comments