@@ -232,10 +232,20 @@ function isMapCenterEqual(initialCenter = {}, currentCenter = {}) {
232232 return initialCenter . crs === currentCenter . crs && Math . abs ( initialCenter . x - currentCenter . x ) < CENTER_EPS && Math . abs ( initialCenter . y - currentCenter . y ) < CENTER_EPS ;
233233}
234234
235- export function getInitialDatasetLayer ( state ) {
235+ export const getInitialDatasetResource = ( state ) => {
236236 const initialResource = state ?. gnresource ?. initialResource ;
237- return initialResource && initialResource . resource_type === ResourceTypes . DATASET && resourceToLayerConfig ( omit ( initialResource , [ 'default_style' ] ) ) ;
238- }
237+ return initialResource && initialResource . resource_type === ResourceTypes . DATASET ? initialResource : null ;
238+ } ;
239+
240+ export const getInitialDatasetLayer = ( state ) => {
241+ const initialResource = getInitialDatasetResource ( state ) ;
242+ return initialResource && resourceToLayerConfig ( omit ( initialResource , [ 'default_style' ] ) ) ;
243+ } ;
244+
245+ export const getInitialDatasetLayerStyle = ( state ) => {
246+ const initialResource = getInitialDatasetResource ( state ) ;
247+ return initialResource ? resourceToLayerConfig ( initialResource ) ?. style : null ;
248+ } ;
239249
240250function isResourceDataEqual ( state , initialData = { } , currentData = { } ) {
241251 const resourceType = state ?. gnresource ?. type ;
@@ -308,11 +318,12 @@ function isResourceDataEqual(state, initialData = {}, currentData = {}) {
308318 const selectedLayer = getSelectedNode ( state ) ;
309319 const selectedLayerInitial = getSelectedLayer ( state ) ;
310320 const initialLayerData = { ...selectedLayerInitial , ...initialData } ;
321+ const initialStyle = getInitialDatasetLayerStyle ( state ) ;
311322
312323 const isSettingsEqual = compareObjects ( omit ( currentData , [ 'style' , 'fields' ] ) ,
313324 omit ( initialLayerData , [ 'style' , 'fields' , 'extendedParams' , 'pk' , '_v_' , 'isDataset' , 'perms' ] ) ) ;
314- const isStyleEqual = isEmpty ( selectedLayer ?. availableStyles ) || isEmpty ( selectedLayer ?. style ) ? true
315- : selectedLayer ?. style === selectedLayer ?. availableStyles ?. [ 0 ] ?. name ;
325+ const isStyleEqual = isEmpty ( initialStyle ) || isEmpty ( selectedLayer ?. style ) ? true
326+ : selectedLayer ?. style === initialStyle ;
316327 const isAttributesEqual = isEmpty ( selectedLayer ) ? true
317328 : ! isEmpty ( initialLayerData ) && isEqual (
318329 isEmpty ( initialLayerData ?. fields ) ? { } : initialLayerData ?. fields ,
0 commit comments