only send api initial api requests on page load, not on every navigation

This commit is contained in:
Gregor Vostrak
2024-04-15 22:28:49 +02:00
parent 22272aebb1
commit c292afa359
2 changed files with 13 additions and 6 deletions

View File

@@ -26,6 +26,7 @@ import { useCurrentTimeEntryStore } from '@/utils/useCurrentTimeEntry';
import { useClientsStore } from '@/utils/useClients'; import { useClientsStore } from '@/utils/useClients';
import { useMembersStore } from '@/utils/useMembers'; import { useMembersStore } from '@/utils/useMembers';
import NotificationContainer from '@/Components/NotificationContainer.vue'; import NotificationContainer from '@/Components/NotificationContainer.vue';
import { useTimeEntriesStore } from '@/utils/useTimeEntries';
defineProps({ defineProps({
title: String, title: String,
@@ -34,12 +35,17 @@ defineProps({
const showSidebarMenu = ref(false); const showSidebarMenu = ref(false);
onMounted(async () => { onMounted(async () => {
// 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(); useProjectsStore().fetchProjects();
useTasksStore().fetchTasks(); useTasksStore().fetchTasks();
useTagsStore().fetchTags(); useTagsStore().fetchTags();
useCurrentTimeEntryStore().fetchCurrentTimeEntry(); useCurrentTimeEntryStore().fetchCurrentTimeEntry();
useClientsStore().fetchClients(); useClientsStore().fetchClients();
useMembersStore().fetchMembers(); useMembersStore().fetchMembers();
useTimeEntriesStore().fetchTimeEntries();
}
}); });
</script> </script>

View File

@@ -6,6 +6,7 @@ import { PageProps as AppPageProps } from './';
declare global { declare global {
interface Window { interface Window {
axios: AxiosInstance; axios: AxiosInstance;
initialDataLoaded: boolean;
} }
let route: typeof ziggyRoute; let route: typeof ziggyRoute;