1- import React , { useState , useMemo , useRef , useEffect } from 'react'
1+ import React , { useState , useMemo , useRef } from 'react'
22import {
33 parseScanFile ,
44 SAMPLE_SCAN_XML ,
@@ -10,7 +10,6 @@ import {
1010} from './scanParsers.js'
1111import AboutSection from '../../components/AboutSection.jsx'
1212import { downloadTextFile } from '../../utils/exportUtils.js'
13- import { getTemp , setTemp , getPersistent , setPersistent } from '../../utils/storage.js'
1413
1514function riskBadgeClasses ( level ) {
1615 switch ( level ) {
@@ -168,71 +167,27 @@ function hostsToCsvReport(hosts) {
168167}
169168
170169function NetworkExposureMap ( { onBack } ) {
171- const [ hosts , setHosts ] = useState ( ( ) =>
172- getTemp ( 'sw_netmap_hosts' , [ ] ) ,
173- )
170+ const [ hosts , setHosts ] = useState ( [ ] )
174171 const [ error , setError ] = useState ( null )
175172 const [ lastSource , setLastSource ] = useState ( null )
176- const [ manualInput , setManualInput ] = useState ( ( ) =>
177- getTemp ( 'sw_netmap_manual' , '' ) ,
178- )
179- const [ showOnlyElevated , setShowOnlyElevated ] = useState ( ( ) =>
180- getPersistent ( 'sw_netmap_showElevated' , false ) ,
181- )
173+ const [ manualInput , setManualInput ] = useState ( '' )
174+ const [ showOnlyElevated , setShowOnlyElevated ] = useState ( false )
182175 const [ exportMessage , setExportMessage ] = useState ( null )
183176 const [ searchQuery , setSearchQuery ] = useState ( '' )
184- const [ onlyUpHosts , setOnlyUpHosts ] = useState ( ( ) =>
185- getPersistent ( 'sw_netmap_onlyUp' , false ) ,
186- )
187- const [ viewMode , setViewMode ] = useState ( ( ) =>
188- getPersistent ( 'sw_netmap_viewMode' , 'hosts' ) ,
189- )
177+ const [ onlyUpHosts , setOnlyUpHosts ] = useState ( false )
178+ const [ viewMode , setViewMode ] = useState ( 'hosts' )
190179
191180 // Host detail side panel
192181 const [ selectedHost , setSelectedHost ] = useState ( null )
193182
194183 // Custom high-risk markers (UI-only, persisted locally)
195- const [ userHighRiskPorts , setUserHighRiskPorts ] = useState ( ( ) =>
196- getPersistent ( 'sw_netmap_custom_ports' , [ ] ) ,
197- )
198- const [ userHighRiskServices , setUserHighRiskServices ] = useState ( ( ) =>
199- getPersistent ( 'sw_netmap_custom_services' , [ ] ) ,
200- )
184+ const [ userHighRiskPorts , setUserHighRiskPorts ] = useState ( [ ] )
185+ const [ userHighRiskServices , setUserHighRiskServices ] = useState ( [ ] )
201186 const [ newHighPort , setNewHighPort ] = useState ( '' )
202187 const [ newHighService , setNewHighService ] = useState ( '' )
203188
204189 const fileInputRef = useRef ( null )
205190
206- // Sync temp state to storage
207- useEffect ( ( ) => {
208- setTemp ( 'sw_netmap_hosts' , hosts )
209- } , [ hosts ] )
210-
211- useEffect ( ( ) => {
212- setTemp ( 'sw_netmap_manual' , manualInput )
213- } , [ manualInput ] )
214-
215- // Sync persistent prefs to storage
216- useEffect ( ( ) => {
217- setPersistent ( 'sw_netmap_showElevated' , showOnlyElevated )
218- } , [ showOnlyElevated ] )
219-
220- useEffect ( ( ) => {
221- setPersistent ( 'sw_netmap_onlyUp' , onlyUpHosts )
222- } , [ onlyUpHosts ] )
223-
224- useEffect ( ( ) => {
225- setPersistent ( 'sw_netmap_viewMode' , viewMode )
226- } , [ viewMode ] )
227-
228- useEffect ( ( ) => {
229- setPersistent ( 'sw_netmap_custom_ports' , userHighRiskPorts )
230- } , [ userHighRiskPorts ] )
231-
232- useEffect ( ( ) => {
233- setPersistent ( 'sw_netmap_custom_services' , userHighRiskServices )
234- } , [ userHighRiskServices ] )
235-
236191 // Helper: custom high-risk logic (adds on top of built-in)
237192 const isCustomHighRisk = ( port ) => {
238193 if ( ! port ) return false
@@ -554,20 +509,23 @@ function NetworkExposureMap({ onBack }) {
554509 )
555510 </ p >
556511
557- < label className = "block" >
558- < span className = "sr-only" > Upload scan file</ span >
512+ < label className = "inline-flex items-center" >
513+ < span className = "inline-flex items-center justify-center
514+ px-3 py-1.5 rounded-full
515+ text-xs font-semibold
516+ bg-emerald-500/90 text-slate-950
517+ hover:bg-emerald-400/90 cursor-pointer" >
518+ Browse…
519+ </ span >
520+
559521 < input
560522 ref = { fileInputRef }
561523 type = "file"
562524 accept = ".xml,.json,.txt"
563525 onChange = { handleFileChange }
564- className = "block w-full text-xs text-slate-200
565- file:mr-3 file:py-1.5 file:px-3 file:rounded-full
566- file:border-0 file:text-xs file:font-semibold
567- file:bg-emerald-500/90 file:text-slate-950
568- hover:file:bg-emerald-400/90 cursor-pointer"
526+ className = "sr-only"
569527 />
570- </ label >
528+ </ label >
571529
572530 { lastSource && (
573531 < p className = "mt-2 text-[0.7rem] text-slate-500" >
0 commit comments