diff --git a/src/composables/__tests__/useArrayData.spec.js b/src/composables/__tests__/useArrayData.spec.js index 0bdcd135d..6ee6866c0 100644 --- a/src/composables/__tests__/useArrayData.spec.js +++ b/src/composables/__tests__/useArrayData.spec.js @@ -25,7 +25,7 @@ describe('useArrayData', () => { arrayData.fetch({}); await flushPromises(); - const router = useRouter(); + const routerReplace = useRouter().replace.mock.calls[0][0]; expect(axios.get.mock.calls[0][1].params).toEqual({ diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index ebe65d07e..cca34d3b3 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -11,14 +11,8 @@ export function useArrayData(key, userOptions) { let route = null; let router = null; - const initializeRouting = () => { - if (!route) route = useRoute(); - if (!router) router = useRouter(); - return { route, router }; - }; // Si no hay key, intentamos obtenerla del route if (!key) { - const { route: initialRoute, router: initialRouter } = initializeRouting(); key = initialRoute?.meta?.moduleName; route = initialRoute; router = initialRouter; @@ -30,15 +24,20 @@ export function useArrayData(key, userOptions) { const store = arrayDataStore.get(key); let canceller = null; + const { route: initialRoute, router: initialRouter } = (() => { + if (!route) route = useRoute(); + if (!router) router = useRouter(); + return { route, router }; + })(); onMounted(() => { setOptions(); reset(['skip']); - const { route: initialRoute, router: initialRouter } = initializeRouting(); route = initialRoute; router = initialRouter; const searchUrl = store.searchUrl; - if (route.query[searchUrl]) { - const params = JSON.parse(query[searchUrl]); + const query = route.query[searchUrl]; + if (query) { + const params = JSON.parse(query); const filter = params?.filter && typeof params?.filter == 'object' ? params?.filter