diff --git a/dashboard/composables/Projects.ts b/dashboard/composables/Projects.ts new file mode 100644 index 0000000..3e84840 --- /dev/null +++ b/dashboard/composables/Projects.ts @@ -0,0 +1,39 @@ +import type { TProject } from "@schema/ProjectSchema"; + +const projects = useFetch('/api/project/list', { + key: 'projectslist', ...signHeaders() +}); + + + +export function useProjectsList() { + return { ...projects, projects: projects.data } +} + + +const activeProjectId = useFetch(`/api/user/active_project`, { + key: 'activeProjectId', ...signHeaders(), +}); + +export function useActiveProjectId() { + return { ...activeProjectId, pid: activeProjectId.data } +} + +export function useActiveProject() { + if (isLiveDemo()) { + const { data: liveDemoProject } = useLiveDemo(); + return liveDemoProject; + } + return computed(() => { + if (!projects.data.value) return; + if (!activeProjectId.data.value) return; + const target = projects.data.value.find(e => e._id.toString() == activeProjectId.data.value); + return target; + }); +} + + +export async function setActiveProject(project_id: string) { + await $fetch(`/api/user/set_active_project?project_id=${project_id}`, signHeaders()); + await activeProjectId.refresh(); +} diff --git a/dashboard/composables/useCurrentProject.ts b/dashboard/composables/useCurrentProject.ts deleted file mode 100644 index 624742f..0000000 --- a/dashboard/composables/useCurrentProject.ts +++ /dev/null @@ -1,28 +0,0 @@ - -import type { TProject } from "@schema/ProjectSchema"; - -const projects = useFetch('/api/project/list', { key: 'projectslist', ...signHeaders() }); -export function useProjectsList() { return projects; } - -const activeProjectId = useFetch(`/api/user/active_project`, { key: 'activeProjectId', ...signHeaders() }); -export function useActiveProjectId() { return activeProjectId; } - -export function useActiveProject() { - if (isLiveDemo()) { - const { data: liveDemoProject } = useLiveDemo(); - return liveDemoProject; - } - const { data: projects } = useProjectsList(); - const { data: activeProjectId } = useActiveProjectId(); - return computed(() => { - if (!projects.value) return; - if (!activeProjectId.value) return; - return projects.value.find(e => e._id.toString() == activeProjectId.value); - }); -} - - -export async function setActiveProject(project_id: string) { - await $fetch(`/api/user/set_active_project?project_id=${project_id}`, signHeaders()); - activeProjectId.refresh(); -} diff --git a/dashboard/pages/dashboard/events.vue b/dashboard/pages/dashboard/events.vue index 78f3ea0..0f86bbd 100644 --- a/dashboard/pages/dashboard/events.vue +++ b/dashboard/pages/dashboard/events.vue @@ -14,7 +14,7 @@ const columns = [ { key: 'created_at', label: 'Creation', sortable: true } ] -const sort = ref({ +const sort = ref({ column: 'created_at', direction: 'desc' }) diff --git a/dashboard/pages/dashboard/visits.vue b/dashboard/pages/dashboard/visits.vue index c79fdfc..50e317c 100644 --- a/dashboard/pages/dashboard/visits.vue +++ b/dashboard/pages/dashboard/visits.vue @@ -19,7 +19,7 @@ const columns = [ { key: 'created_at', label: 'Date', sortable: true } ] -const sort = ref({ +const sort = ref({ column: 'created_at', direction: 'desc' }) @@ -67,8 +67,7 @@ onMounted(async () => { th: { color: 'text-text-sub' }, tbody: 'divide-y divide-gray-300/20', divide: '', - }" v-model:sort="sort" :columns="selectedColumns" :rows="tableData" :loading="loadingData" sort-mode="manual" - :sortButton="{ color: '#000000' }"> + }" v-model:sort="sort" :columns="selectedColumns" :rows="tableData" :loading="loadingData" sort-mode="manual">