Skip to content

Commit b1e8d5d

Browse files
committed
feat: Integrate useModuleUpdateRoute composable for route updates and remove routerBase from mountInsightsApp
1 parent 815c45f commit b1e8d5d

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

src/components/SystemInsights.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { useRoute } from 'vue-router';
44
55
import LoadingModule from './modules/LoadingModule.vue';
66
import ExternalSystem from './ExternalSystem.vue';
7-
import { tryImportWithRetries } from '../utils/moduleFederation';
7+
import { tryImportWithRetries } from '@/utils/moduleFederation';
88
import { useSharedStore } from '@/store/Shared';
9-
import { useFeatureFlagsStore } from '../store/featureFlags';
9+
import { useFeatureFlagsStore } from '@/store/featureFlags';
10+
import { useModuleUpdateRoute } from '@/composables/useModuleUpdateRoute';
1011
1112
const insightsApp = ref(null);
1213
const useIframe = ref(false);
@@ -25,6 +26,8 @@ const route = useRoute();
2526
const sharedStore = useSharedStore();
2627
const featureFlagsStore = useFeatureFlagsStore();
2728
29+
useModuleUpdateRoute('insights');
30+
2831
async function mount({ force = false } = {}) {
2932
if (!force && !props.modelValue) {
3033
return;
@@ -47,7 +50,6 @@ async function mount({ force = false } = {}) {
4750
4851
insightsApp.value = await mountInsightsApp({
4952
containerId: 'insights-app',
50-
routerBase: `/projects/${sharedStore.current.project.uuid}/insights`,
5153
});
5254
}
5355
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { onMounted, onUnmounted } from 'vue';
2+
import { useRouter } from 'vue-router';
3+
4+
/**
5+
* Composable to handle updateRoute window events
6+
* @param {string} routeName - The name of the route to navigate to
7+
* @returns {void}
8+
*/
9+
export function useModuleUpdateRoute(routeName) {
10+
const router = useRouter();
11+
12+
const handleUpdateRoute = (event) => {
13+
const path = event.detail.path
14+
.split('/')
15+
.slice(1)
16+
.filter((item) => item);
17+
18+
if (path.length) {
19+
router.replace({
20+
name: routeName,
21+
params: {
22+
internal: path,
23+
},
24+
query: event.detail?.query,
25+
});
26+
}
27+
};
28+
29+
onMounted(() => {
30+
window.addEventListener('updateRoute', handleUpdateRoute);
31+
});
32+
33+
onUnmounted(() => {
34+
window.removeEventListener('updateRoute', handleUpdateRoute);
35+
});
36+
}

0 commit comments

Comments
 (0)