import {computed, ref} from "vue"; import {storeToRefs} from "pinia"; import {useOrganizationsStore} from "stores/Organizations"; import {useUserStore} from "stores/User"; import {successObject} from "src/composables/dialog"; export const loading = ref(true); export const organization = ref(null); export const fetchOrganization = (organizationId) => { loading.value = true; return useOrganizationsStore().fetchDetail(parseInt(organizationId)) .then(resp => { organization.value = resp; return resp; }) .finally(() => loading.value = false); } export const organizations = storeToRefs(useOrganizationsStore()).items; export const fetchOrganizations = () => { loading.value = true; return useOrganizationsStore().fetch().finally(() => loading.value = false); } export const isRequestPending = storeToRefs(useOrganizationsStore()).isMutationRunning; const loggedUser = storeToRefs(useUserStore()).user; export const myOrganizationIds = computed(() => loggedUser.value.organizations?.map(o => o.id) || []); export const addToOrganization = async (organizationId) => { useOrganizationsStore().addUserToOrganization(organizationId).then((data) => { organization.value.users = data.users; useUserStore().fetchLoggedUserDetail(); }); }; export const removeFromOrganization = async (organizationId) => { useOrganizationsStore().removeUserFromOrganization(organizationId).then((data) => { organization.value.users = data.users; useUserStore().fetchLoggedUserDetail(); }); }