refactor time entry and projecttaskdropdown components to not rely on pinia stores

This commit is contained in:
Gregor Vostrak
2024-07-09 18:40:12 +02:00
parent 375cee7589
commit a519c119d4
12 changed files with 201 additions and 256 deletions

View File

@@ -12,12 +12,14 @@ import { canCreateProjects } from '@/utils/permissions';
import TabBarItem from '@/Components/Common/TabBar/TabBarItem.vue';
import TabBar from '@/Components/Common/TabBar/TabBar.vue';
import { storeToRefs } from 'pinia';
import { useClientsStore } from '@/utils/useClients';
import type { CreateProjectBody } from '@/utils/api';
onMounted(() => {
useProjectsStore().fetchProjects();
});
const createProject = ref(false);
const { clients } = storeToRefs(useClientsStore());
const showCreateProjectModal = ref(false);
const activeTab = ref<'active' | 'archived'>('active');
@@ -25,6 +27,11 @@ function isActiveTab(tab: string) {
return activeTab.value === tab;
}
async function createProject(project: CreateProjectBody, callback: () => void) {
await useProjectsStore().createProject(project);
callback();
}
const { projects } = storeToRefs(useProjectsStore());
const shownProjects = computed(() => {
@@ -59,11 +66,13 @@ const shownProjects = computed(() => {
<SecondaryButton
v-if="canCreateProjects()"
:icon="PlusIcon"
@click="createProject = true"
@click="showCreateProjectModal = true"
>Create Project
</SecondaryButton>
<ProjectCreateModal
v-model:show="createProject"></ProjectCreateModal>
:clients="clients"
@submit="createProject"
v-model:show="showCreateProjectModal"></ProjectCreateModal>
</MainContainer>
<ProjectTable :projects="shownProjects"></ProjectTable>
</AppLayout>