From b9daad7212b6c737d0f8805d90e0cf061317bc99 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 4 Mar 2025 13:00:20 +0100 Subject: [PATCH] move and fragment new graphql queries and mutations --- admin/package.json | 1 + .../ProjectBranding/ListHumhubSpaces.vue | 28 ++++--------------- .../ProjectBranding/ProjectBrandingForm.vue | 4 +-- .../ProjectBranding/ProjectBrandingItem.vue | 23 ++------------- admin/src/config/index.js | 2 +- admin/src/graphql/fragments.graphql | 23 +++++++++++++++ admin/src/graphql/projectBranding.graphql | 22 +++++++++++++++ admin/vite.config.js | 4 ++- admin/yarn.lock | 13 +++++++-- backend/src/graphql/model/Pagination.ts | 19 +++++++++++++ backend/src/graphql/model/SpaceList.ts | 16 ++++------- 11 files changed, 97 insertions(+), 58 deletions(-) create mode 100644 admin/src/graphql/fragments.graphql create mode 100644 admin/src/graphql/projectBranding.graphql create mode 100644 backend/src/graphql/model/Pagination.ts diff --git a/admin/package.json b/admin/package.json index f74ff7729..a426ee8ab 100644 --- a/admin/package.json +++ b/admin/package.json @@ -89,6 +89,7 @@ "unplugin-icons": "^0.19.0", "unplugin-vue-components": "^0.27.3", "vite-plugin-environment": "^1.1.3", + "vite-plugin-graphql-loader": "^4.0.4", "vitest": "^2.0.5", "vitest-canvas-mock": "^0.3.3" }, diff --git a/admin/src/components/ProjectBranding/ListHumhubSpaces.vue b/admin/src/components/ProjectBranding/ListHumhubSpaces.vue index a8c359d1a..4e7a0bf77 100644 --- a/admin/src/components/ProjectBranding/ListHumhubSpaces.vue +++ b/admin/src/components/ProjectBranding/ListHumhubSpaces.vue @@ -26,9 +26,9 @@ import { ref, onMounted, computed } from 'vue' +import { spaces as spacesQuery } from '@/graphql/projectBranding.graphql' import { useQuery } from '@vue/apollo-composable' -import gql from 'graphql-tag' const props = defineProps({ modelValue: { @@ -57,26 +57,10 @@ function chooseSpace(space) { const ITEMS_PER_PAGE = 20 const page = ref(1) const selectedSpaceId = ref(props.modelValue) -const { result, refetch } = useQuery( - gql` - query spaces($page: Int!, $limit: Int!) { - spaces(page: $page, limit: $limit) { - total - page - pages - results { - id - name - description - url - } - } - } - `, - { page: page.value, limit: ITEMS_PER_PAGE }, -) +const { result, refetch } = useQuery(spacesQuery, { page: page.value, limit: ITEMS_PER_PAGE }) const spaces = computed(() => result.value?.spaces?.results || []) +const pagination = computed(() => result.value?.spaces?.pagination || {}) onMounted(() => { if (props.modelValue) { diff --git a/admin/src/components/ProjectBranding/ProjectBrandingForm.vue b/admin/src/components/ProjectBranding/ProjectBrandingForm.vue index e412e55f3..e48a2004e 100644 --- a/admin/src/components/ProjectBranding/ProjectBrandingForm.vue +++ b/admin/src/components/ProjectBranding/ProjectBrandingForm.vue @@ -100,7 +100,7 @@ const spaceId = computed(() => form.spaceId) const newUserToSpace = computed(() => form.newUserToSpace) const logoUrl = computed(() => form.logoUrl) // show space -const GET_SPACE = gql` +const getSpace = gql` query space($id: ID!) { space(id: $id) { name @@ -108,7 +108,7 @@ const GET_SPACE = gql` } } ` -const { result } = useQuery(GET_SPACE, () => ({ id: spaceId.value }), { +const { result } = useQuery(getSpace, () => ({ id: spaceId.value }), { enabled: computed(() => !!spaceId.value), }) diff --git a/admin/src/components/ProjectBranding/ProjectBrandingItem.vue b/admin/src/components/ProjectBranding/ProjectBrandingItem.vue index 265ccf597..1a02286f7 100644 --- a/admin/src/components/ProjectBranding/ProjectBrandingItem.vue +++ b/admin/src/components/ProjectBranding/ProjectBrandingItem.vue @@ -46,11 +46,11 @@