55function loadDrivers ( jsonUrl , containerId ) {
66 console . log ( `Loading drivers from: ${ jsonUrl } into #${ containerId } ` ) ;
77
8- //region preference
98 const userRegion = localStorage . getItem ( "userRegion" ) || "USA" ;
109
1110 fetch ( jsonUrl )
@@ -23,7 +22,6 @@ function loadDrivers(jsonUrl, containerId) {
2322 return ;
2423 }
2524
26- //Clear existing
2725 container . innerHTML = '' ;
2826
2927 if ( data . warningMessage ) {
@@ -33,23 +31,21 @@ function loadDrivers(jsonUrl, containerId) {
3331 container . appendChild ( warningDiv ) ;
3432 }
3533
36- //driver list container
3734 const driverList = document . createElement ( 'div' ) ;
3835 driverList . className = 'driver-list' ;
39-
40- //Add driver
36+
4137 data . drivers . forEach ( driver => {
4238 const driverItem = document . createElement ( 'div' ) ;
4339 driverItem . className = driver . hasWarning ? 'driver-item warning' : 'driver-item' ;
4440
45- //driver link/warning link
41+
4642 const driverLink = document . createElement ( 'a' ) ;
4743 if ( driver . hasWarning && driver . warningUrl ) {
4844 driverLink . href = driver . warningUrl ;
4945 driverLink . className = 'amd-button' ;
5046 driverLink . innerHTML = `⚠️ ${ driver . version } - ${ driver . type } ` ;
5147 } else if ( driver . downloadUrl ) {
52- //Apply region NVIDIA URLs
48+
5349 let downloadUrl = driver . downloadUrl ;
5450 if ( containerId . includes ( 'nvidia' ) && userRegion === "EU" ) {
5551 downloadUrl = downloadUrl . replace ( "us.download.nvidia.com" , "uk.download.nvidia.com" ) ;
@@ -60,7 +56,6 @@ function loadDrivers(jsonUrl, containerId) {
6056 driverLink . className = containerId . includes ( 'nvidia' ) ? 'nvidia-button' : 'intel-button' ;
6157 driverLink . textContent = `${ driver . version } ${ driver . type ? '- ' + driver . type : '' } ` ;
6258
63-
6459 driverLink . dataset . originalUrl = driver . downloadUrl ;
6560 } else {
6661 //Fallback
@@ -75,11 +70,37 @@ function loadDrivers(jsonUrl, containerId) {
7570 dateSpan . textContent = `Released ${ driver . releaseDate } ` ;
7671 driverItem . appendChild ( dateSpan ) ;
7772
78- //containers
73+ if ( driver . sha256sum ) {
74+ const hashContainer = document . createElement ( 'div' ) ;
75+ hashContainer . className = 'hash-container' ;
76+ hashContainer . style . display = 'none' ;
77+ hashContainer . innerHTML = `<span class="hash-label">SHA256:</span> <span class="hash-value">${ driver . sha256sum } </span>` ;
78+
79+ const hashButton = document . createElement ( 'button' ) ;
80+ hashButton . className = 'hash-button' ;
81+ hashButton . innerHTML = '<span class="material-icons">fingerprint</span>' ;
82+ hashButton . title = 'Show SHA256 hash' ;
83+ hashButton . onclick = function ( e ) {
84+ e . preventDefault ( ) ;
85+ e . stopPropagation ( ) ;
86+ if ( hashContainer . style . display === 'none' ) {
87+ hashContainer . style . display = 'block' ;
88+ hashButton . title = 'Hide SHA256 hash' ;
89+ hashButton . classList . add ( 'active' ) ;
90+ } else {
91+ hashContainer . style . display = 'none' ;
92+ hashButton . title = 'Show SHA256 hash' ;
93+ hashButton . classList . remove ( 'active' ) ;
94+ }
95+ } ;
96+
97+ driverItem . appendChild ( hashButton ) ;
98+ driverItem . appendChild ( hashContainer ) ;
99+ }
100+
79101 const iconsContainer = document . createElement ( 'div' ) ;
80102 iconsContainer . className = 'driver-icons-container' ;
81103
82- //Reddit link
83104 if ( driver . redditUrl ) {
84105 const communityLink = document . createElement ( 'a' ) ;
85106 communityLink . href = driver . redditUrl ;
@@ -95,7 +116,6 @@ function loadDrivers(jsonUrl, containerId) {
95116 iconsContainer . appendChild ( communityLink ) ;
96117 }
97118
98- //stability grade
99119 if ( driver . isStable && driver . stabilityGrade ) {
100120 const gradeSpan = document . createElement ( 'span' ) ;
101121 gradeSpan . className = 'stability-grade' ;
@@ -110,7 +130,6 @@ function loadDrivers(jsonUrl, containerId) {
110130
111131 container . appendChild ( driverList ) ;
112132
113- //last updated note
114133 const updateNote = document . createElement ( 'div' ) ;
115134 updateNote . className = 'update-note' ;
116135 updateNote . textContent = `Drivers list updated: ${ data . lastUpdated } ` ;
0 commit comments