@@ -357,6 +357,23 @@ const annotateSitesWithLibraryRefs = (sites: Site[], library: SiteLibraryEntry[]
357357 } ) ;
358358} ;
359359
360+ const syncLibraryLinkedSiteValues = ( sites : Site [ ] , library : SiteLibraryEntry [ ] ) : Site [ ] => {
361+ if ( ! sites . length || ! library . length ) return sites ;
362+ const byId = new Map < string , SiteLibraryEntry > ( library . map ( ( entry ) => [ entry . id , entry ] ) ) ;
363+ return sites . map ( ( site ) => {
364+ if ( ! site . libraryEntryId ) return site ;
365+ const entry = byId . get ( site . libraryEntryId ) ;
366+ if ( ! entry ) return site ;
367+ return {
368+ ...site ,
369+ name : entry . name ,
370+ position : entry . position ,
371+ groundElevationM : entry . groundElevationM ,
372+ antennaHeightM : entry . antennaHeightM ,
373+ } ;
374+ } ) ;
375+ } ;
376+
360377const hasPrivateLibrarySiteReferences = (
361378 sites : Site [ ] ,
362379 siteLibrary : SiteLibraryEntry [ ] ,
@@ -778,8 +795,10 @@ export const useAppStore = create<AppState>((set, get) => ({
778795 } ) ,
779796 ) ;
780797 writeStorage ( SITE_LIBRARY_KEY , next ) ;
781- return { siteLibrary : next } ;
798+ const nextSites = syncLibraryLinkedSiteValues ( state . sites , next ) ;
799+ return { siteLibrary : next , sites : nextSites } ;
782800 } ) ;
801+ get ( ) . recomputeCoverage ( ) ;
783802 } ,
784803 deleteSiteLibraryEntry : ( entryId ) => {
785804 get ( ) . deleteSiteLibraryEntries ( [ entryId ] ) ;
@@ -888,17 +907,18 @@ export const useAppStore = create<AppState>((set, get) => ({
888907 Array . isArray ( snap . systems ) ? snap . systems : [ ] ,
889908 Array . isArray ( snap . networks ) ? snap . networks : [ ] ,
890909 ) ;
891- const selectedSiteId = recovered . sites . some ( ( site ) => site . id === snap . selectedSiteId )
910+ const recoveredSites = syncLibraryLinkedSiteValues ( recovered . sites , get ( ) . siteLibrary ) ;
911+ const selectedSiteId = recoveredSites . some ( ( site ) => site . id === snap . selectedSiteId )
892912 ? snap . selectedSiteId
893- : recovered . sites [ 0 ] . id ;
913+ : recoveredSites [ 0 ] . id ;
894914 const selectedLinkId = recovered . links . some ( ( link ) => link . id === snap . selectedLinkId )
895915 ? snap . selectedLinkId
896916 : recovered . links [ 0 ] . id ;
897917 const selectedNetworkId = recovered . networks . some ( ( network ) => network . id === snap . selectedNetworkId )
898918 ? snap . selectedNetworkId
899919 : recovered . networks [ 0 ] . id ;
900920 set ( {
901- sites : recovered . sites ,
921+ sites : recoveredSites ,
902922 links : recovered . links ,
903923 systems : recovered . systems ,
904924 networks : recovered . networks ,
0 commit comments