@@ -89,12 +89,18 @@ export default function PTable({
8989 useEffect ( ( ) => {
9090 if ( ! providerUrl || ! cachedPTable ) return ;
9191
92- const ptable = cachedPTable [ providerUrl ] || { } ;
92+ const ptable = cachedPTable [ providerUrl ] ;
9393
94- const updatedElements = allElements . map ( ( el ) => ( {
95- ...el ,
96- present : el . sym in ptable ? ptable [ el . sym ] : undefined ,
97- } ) ) ;
94+ const updatedElements = allElements . map ( ( el ) => {
95+ // Case 1: provider not in cache everything full color
96+ if ( ! ptable ) return { ...el , present : true } ;
97+
98+ // Case 2: element in cache use cached value
99+ if ( el . sym in ptable ) return { ...el , present : ptable [ el . sym ] } ;
100+
101+ // Case 3: element missing in provider full color
102+ return { ...el , present : true } ;
103+ } ) ;
98104
99105 setElements ( updatedElements ) ;
100106 } , [ providerUrl , cachedPTable ] ) ;
@@ -112,7 +118,8 @@ export default function PTable({
112118 if ( state === 1 ) return selectedClassName ;
113119 if ( state === 2 ) return deselectedClassName ;
114120
115- const opacityClass = ! el . present ? "opacity-30" : "" ;
121+ // Only grey out elements explicitly marked as absent (false)
122+ const opacityClass = el . present === false ? "opacity-30" : "" ;
116123
117124 return `${ baseColor } ${ defaultBorderClassName } ${ opacityClass } ` ;
118125 } ;
0 commit comments