diff --git a/resources/js/Components/Dashboard/TeamActivityCard.vue b/resources/js/Components/Dashboard/TeamActivityCard.vue
index f6da7773..e2827d25 100644
--- a/resources/js/Components/Dashboard/TeamActivityCard.vue
+++ b/resources/js/Components/Dashboard/TeamActivityCard.vue
@@ -2,6 +2,8 @@
import DashboardCard from '@/Components/Dashboard/DashboardCard.vue';
import TeamActivityCardEntry from '@/Components/Dashboard/TeamActivityCardEntry.vue';
import { UserGroupIcon } from '@heroicons/vue/20/solid';
+import { router } from '@inertiajs/vue3';
+import SecondaryButton from '@/Components/SecondaryButton.vue';
defineProps<{
latestTeamActivity: {
@@ -24,5 +26,20 @@ defineProps<{
:name="activity.name"
:description="activity.description"
:working="activity.status">
+
+
+
+
+ Invite your co-workers
+
+
You can invite your entire team.
+
Go to Members
+
+
+
diff --git a/resources/js/Components/OrganizationSwitcher.vue b/resources/js/Components/OrganizationSwitcher.vue
index 55717e6a..db43be99 100644
--- a/resources/js/Components/OrganizationSwitcher.vue
+++ b/resources/js/Components/OrganizationSwitcher.vue
@@ -5,6 +5,7 @@ import DropdownLink from '@/Components/DropdownLink.vue';
import { router, usePage } from '@inertiajs/vue3';
import type { Organization, User } from '@/types/models';
import { isBillingActivated } from '@/utils/billing';
+import { initializeStores } from '@/utils/init';
const page = usePage<{
jetstream: {
@@ -28,6 +29,9 @@ const switchToTeam = (team: Organization) => {
},
{
preserveState: false,
+ onSuccess: () => {
+ initializeStores();
+ },
}
);
};
diff --git a/resources/js/Layouts/AppLayout.vue b/resources/js/Layouts/AppLayout.vue
index 8705db74..039ad327 100644
--- a/resources/js/Layouts/AppLayout.vue
+++ b/resources/js/Layouts/AppLayout.vue
@@ -19,14 +19,8 @@ import NavigationSidebarItem from '@/Components/NavigationSidebarItem.vue';
import UserSettingsIcon from '@/Components/UserSettingsIcon.vue';
import MainContainer from '@/Pages/MainContainer.vue';
import { onMounted, ref } from 'vue';
-import { useProjectsStore } from '@/utils/useProjects';
-import { useTagsStore } from '@/utils/useTags';
-import { useTasksStore } from '@/utils/useTasks';
-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';
+import { initializeStores } from '@/utils/init';
defineProps({
title: String,
@@ -38,13 +32,7 @@ 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();
- useTasksStore().fetchTasks();
- useTagsStore().fetchTags();
- useCurrentTimeEntryStore().fetchCurrentTimeEntry();
- useClientsStore().fetchClients();
- useMembersStore().fetchMembers();
- useTimeEntriesStore().fetchTimeEntries();
+ initializeStores();
}
});
diff --git a/resources/js/Pages/Time.vue b/resources/js/Pages/Time.vue
index a3a0da9a..20556e82 100644
--- a/resources/js/Pages/Time.vue
+++ b/resources/js/Pages/Time.vue
@@ -92,7 +92,7 @@ const groupedTimeEntries = computed(() => {
+ class="flex justify-center items-center py-5 text-muted font-medium">
All time entries are loaded!
diff --git a/resources/js/utils/init.ts b/resources/js/utils/init.ts
new file mode 100644
index 00000000..d97838e1
--- /dev/null
+++ b/resources/js/utils/init.ts
@@ -0,0 +1,17 @@
+import { useProjectsStore } from '@/utils/useProjects';
+import { useTasksStore } from '@/utils/useTasks';
+import { useTagsStore } from '@/utils/useTags';
+import { useCurrentTimeEntryStore } from '@/utils/useCurrentTimeEntry';
+import { useClientsStore } from '@/utils/useClients';
+import { useMembersStore } from '@/utils/useMembers';
+import { useTimeEntriesStore } from '@/utils/useTimeEntries';
+
+export function initializeStores() {
+ useProjectsStore().fetchProjects();
+ useTasksStore().fetchTasks();
+ useTagsStore().fetchTags();
+ useCurrentTimeEntryStore().fetchCurrentTimeEntry();
+ useClientsStore().fetchClients();
+ useMembersStore().fetchMembers();
+ useTimeEntriesStore().fetchTimeEntries();
+}