@grafana/scenes 4.26.3--canary.765.9398400471.0 → 4.26.3--canary.765.9399849393.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useState, useEffect } from 'react';
|
2
2
|
import { useLocation } from 'react-router-dom';
|
3
3
|
import { getUrlSyncManager } from './UrlSyncManager.js';
|
4
|
+
import { locationService } from '@grafana/runtime';
|
4
5
|
|
5
6
|
function useUrlSync(sceneRoot) {
|
6
7
|
const urlSyncManager = getUrlSyncManager();
|
@@ -12,7 +13,12 @@ function useUrlSync(sceneRoot) {
|
|
12
13
|
return () => urlSyncManager.cleanUp(sceneRoot);
|
13
14
|
}, [sceneRoot, urlSyncManager]);
|
14
15
|
useEffect(() => {
|
15
|
-
|
16
|
+
const latestLocation = locationService.getLocation();
|
17
|
+
const locationToHandle = latestLocation !== location ? latestLocation : location;
|
18
|
+
if (latestLocation !== location) {
|
19
|
+
console.log("latestLocation different from location");
|
20
|
+
}
|
21
|
+
urlSyncManager.handleNewLocation(locationToHandle);
|
16
22
|
}, [sceneRoot, urlSyncManager, location]);
|
17
23
|
return isInitialized;
|
18
24
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useUrlSync.js","sources":["../../../src/services/useUrlSync.ts"],"sourcesContent":["import { SceneObject } from '../core/types';\nimport { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { getUrlSyncManager } from './UrlSyncManager';\n\nexport function useUrlSync(sceneRoot: SceneObject): boolean {\n const urlSyncManager = getUrlSyncManager();\n const location = useLocation();\n const [isInitialized, setIsInitialized] = useState(false);\n\n useEffect(() => {\n urlSyncManager.initSync(sceneRoot);\n setIsInitialized(true);\n return () => urlSyncManager.cleanUp(sceneRoot);\n }, [sceneRoot, urlSyncManager]);\n\n useEffect(() => {\n urlSyncManager.handleNewLocation(
|
1
|
+
{"version":3,"file":"useUrlSync.js","sources":["../../../src/services/useUrlSync.ts"],"sourcesContent":["import { SceneObject } from '../core/types';\nimport { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { getUrlSyncManager } from './UrlSyncManager';\nimport { locationService } from '@grafana/runtime';\n\nexport function useUrlSync(sceneRoot: SceneObject): boolean {\n const urlSyncManager = getUrlSyncManager();\n const location = useLocation();\n const [isInitialized, setIsInitialized] = useState(false);\n\n useEffect(() => {\n urlSyncManager.initSync(sceneRoot);\n setIsInitialized(true);\n return () => urlSyncManager.cleanUp(sceneRoot);\n }, [sceneRoot, urlSyncManager]);\n\n useEffect(() => {\n // Use latest location, as by the time this effect runs, the location might have changed again\n const latestLocation = locationService.getLocation();\n const locationToHandle = latestLocation !== location ? latestLocation : location;\n\n if (latestLocation !== location) {\n console.log('latestLocation different from location');\n }\n\n urlSyncManager.handleNewLocation(locationToHandle);\n }, [sceneRoot, urlSyncManager, location]);\n\n return isInitialized;\n}\n\nexport interface UrlSyncContextProviderProps {\n scene: SceneObject;\n children: React.ReactNode;\n}\n"],"names":[],"mappings":";;;;;AAMO,SAAS,WAAW,SAAiC,EAAA;AAC1D,EAAA,MAAM,iBAAiB,iBAAkB,EAAA,CAAA;AACzC,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAExD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,SAAS,SAAS,CAAA,CAAA;AACjC,IAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AACrB,IAAO,OAAA,MAAM,cAAe,CAAA,OAAA,CAAQ,SAAS,CAAA,CAAA;AAAA,GAC5C,EAAA,CAAC,SAAW,EAAA,cAAc,CAAC,CAAA,CAAA;AAE9B,EAAA,SAAA,CAAU,MAAM;AAEd,IAAM,MAAA,cAAA,GAAiB,gBAAgB,WAAY,EAAA,CAAA;AACnD,IAAM,MAAA,gBAAA,GAAmB,cAAmB,KAAA,QAAA,GAAW,cAAiB,GAAA,QAAA,CAAA;AAExE,IAAA,IAAI,mBAAmB,QAAU,EAAA;AAC/B,MAAA,OAAA,CAAQ,IAAI,wCAAwC,CAAA,CAAA;AAAA,KACtD;AAEA,IAAA,cAAA,CAAe,kBAAkB,gBAAgB,CAAA,CAAA;AAAA,GAChD,EAAA,CAAC,SAAW,EAAA,cAAA,EAAgB,QAAQ,CAAC,CAAA,CAAA;AAExC,EAAO,OAAA,aAAA,CAAA;AACT;;;;"}
|
package/dist/index.js
CHANGED
@@ -7823,7 +7823,12 @@ function useUrlSync(sceneRoot) {
|
|
7823
7823
|
return () => urlSyncManager.cleanUp(sceneRoot);
|
7824
7824
|
}, [sceneRoot, urlSyncManager]);
|
7825
7825
|
React.useEffect(() => {
|
7826
|
-
|
7826
|
+
const latestLocation = runtime.locationService.getLocation();
|
7827
|
+
const locationToHandle = latestLocation !== location ? latestLocation : location;
|
7828
|
+
if (latestLocation !== location) {
|
7829
|
+
console.log("latestLocation different from location");
|
7830
|
+
}
|
7831
|
+
urlSyncManager.handleNewLocation(locationToHandle);
|
7827
7832
|
}, [sceneRoot, urlSyncManager, location]);
|
7828
7833
|
return isInitialized;
|
7829
7834
|
}
|