From c292afa35967cee632e474dc8e51f052689905c3 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Mon, 15 Apr 2024 22:28:49 +0200 Subject: [PATCH] only send api initial api requests on page load, not on every navigation --- resources/js/Layouts/AppLayout.vue | 18 ++++++++++++------ resources/js/types/global.d.ts | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/resources/js/Layouts/AppLayout.vue b/resources/js/Layouts/AppLayout.vue index 11a7d37d..8705db74 100644 --- a/resources/js/Layouts/AppLayout.vue +++ b/resources/js/Layouts/AppLayout.vue @@ -26,6 +26,7 @@ import { useCurrentTimeEntryStore } from '@/utils/useCurrentTimeEntry'; import { useClientsStore } from '@/utils/useClients'; import { useMembersStore } from '@/utils/useMembers'; import NotificationContainer from '@/Components/NotificationContainer.vue'; +import { useTimeEntriesStore } from '@/utils/useTimeEntries'; defineProps({ title: String, @@ -34,12 +35,17 @@ defineProps({ const showSidebarMenu = ref(false); onMounted(async () => { - useProjectsStore().fetchProjects(); - useTasksStore().fetchTasks(); - useTagsStore().fetchTags(); - useCurrentTimeEntryStore().fetchCurrentTimeEntry(); - useClientsStore().fetchClients(); - useMembersStore().fetchMembers(); + // make sure that the initial requests are only loaded once, this can be removed once we move away from inertia + if (window.initialDataLoaded !== true) { + window.initialDataLoaded = true; + useProjectsStore().fetchProjects(); + useTasksStore().fetchTasks(); + useTagsStore().fetchTags(); + useCurrentTimeEntryStore().fetchCurrentTimeEntry(); + useClientsStore().fetchClients(); + useMembersStore().fetchMembers(); + useTimeEntriesStore().fetchTimeEntries(); + } }); diff --git a/resources/js/types/global.d.ts b/resources/js/types/global.d.ts index c4b0d866..87981e48 100644 --- a/resources/js/types/global.d.ts +++ b/resources/js/types/global.d.ts @@ -6,6 +6,7 @@ import { PageProps as AppPageProps } from './'; declare global { interface Window { axios: AxiosInstance; + initialDataLoaded: boolean; } let route: typeof ziggyRoute;