From 4957039fc5c844e71411021a48edbec90e66a267 Mon Sep 17 00:00:00 2001 From: Alexandr SaVBaD Waltz Date: Fri, 11 Jul 2025 19:25:03 +0300 Subject: [PATCH] Features: 1) Integrate advanced Apollo link setup including error handling, authentication, and custom link chaining; 2) Replace `apollo-upload-link.ts` with revised client link configuration in `apollo.ts`; 3) Add `@types/apollo-upload-client` and `@types/extract-files` for enhanced TypeScript support; Fixes: 1) Remove deprecated and redundant logic from `useAvatarUpload`; 2) Correct non-functional avatar upload and improve template handling in `settings.vue`; Extra: 1) Cleanup unused imports, comments, and SCSS styles across files; 2) Simplify plugin configuration and migration to consolidated link logic; 3) Update package dependencies with precise resolution in `package-lock.json`. --- .../composables/user/useAvatarUpload.ts | 8 +-- storefront/nuxt.config.ts | 17 +----- storefront/package-lock.json | 20 +++++++ storefront/package.json | 1 + storefront/pages/profile/settings.vue | 3 +- storefront/plugins/apollo-upload-link.ts | 21 ------- storefront/plugins/apollo.ts | 55 +++++++++++++++---- 7 files changed, 67 insertions(+), 58 deletions(-) delete mode 100644 storefront/plugins/apollo-upload-link.ts diff --git a/storefront/composables/user/useAvatarUpload.ts b/storefront/composables/user/useAvatarUpload.ts index 317d9e46..18de9e0b 100644 --- a/storefront/composables/user/useAvatarUpload.ts +++ b/storefront/composables/user/useAvatarUpload.ts @@ -6,17 +6,11 @@ import {useNotification} from "~/composables/notification"; export function useAvatarUpload() { const { t } = useI18n(); const userStore = useUserStore(); - const { mutate, onDone, loading, error } = useMutation( - UPLOAD_AVATAR, - // { - // context: { hasUpload: true } - // } - ); + const { mutate, onDone, loading, error } = useMutation(UPLOAD_AVATAR); async function uploadAvatar(event: Event) { const file = (event.target as HTMLInputElement).files?.[0]; if (!file) return; - console.log(file) await mutate({ file }); } diff --git a/storefront/nuxt.config.ts b/storefront/nuxt.config.ts index 2c18aa5e..85f79f0b 100644 --- a/storefront/nuxt.config.ts +++ b/storefront/nuxt.config.ts @@ -2,7 +2,6 @@ import { defineNuxtConfig } from 'nuxt/config'; import { i18nConfig } from './config/i18n'; import {fileURLToPath, URL} from "node:url"; import { resolve } from 'node:path'; -import createUploadLink from "apollo-upload-client/createUploadLink.mjs"; export default defineNuxtConfig({ ssr: true, @@ -93,20 +92,6 @@ export default defineNuxtConfig({ file: resolve(__dirname, 'pages/index.vue') } ) - }, - // 'apollo:client:created'(apolloClient, { key }) { - // console.log(key) - // console.log('log') - // if ( key !== 'default' ) return - // const runtime = useRuntimeConfig() - // const uploadLink = createUploadLink({ - // uri: `https://api.${runtime.public.evibesBaseDomain}/graphql/`, - // credentials: 'include', - // headers: { - // 'X-EVIBES-AUTH': useCookie(`${runtime.public.evibesProjectName?.toLowerCase()}-access`).value || '' - // } - // }) - // apolloClient.setLink(uploadLink) - // } + } } }) \ No newline at end of file diff --git a/storefront/package-lock.json b/storefront/package-lock.json index 33198687..5f58f5cb 100644 --- a/storefront/package-lock.json +++ b/storefront/package-lock.json @@ -32,6 +32,7 @@ "devDependencies": { "@element-plus/nuxt": "^1.1.3", "@nuxtjs/apollo": "^5.0.0-alpha.14", + "@types/apollo-upload-client": "^18.0.0", "element-plus": "^2.10.1", "typescript": "^5.8.3", "vue-tsc": "^2.2.10" @@ -2591,6 +2592,18 @@ "node": ">=10.13.0" } }, + "node_modules/@types/apollo-upload-client": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/apollo-upload-client/-/apollo-upload-client-18.0.0.tgz", + "integrity": "sha512-cMgITNemktxasqvp6jiPj15dv84n3FTMvMoYBP1+xonDS+0l6JygIJrj2LJh85rShRzTOOkrElrAsCXXARa3KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apollo/client": "^3.8.0", + "@types/extract-files": "*", + "graphql": "14 - 16" + } + }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", @@ -2603,6 +2616,13 @@ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, + "node_modules/@types/extract-files": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@types/extract-files/-/extract-files-13.0.1.tgz", + "integrity": "sha512-/fRbzc2lAd7jDJSSnxWiUyXWjdUZZ4HbISLJzVgt1AvrdOa7U49YRPcvuCUywkmURZ7uwJOheDjx19itbQ5KvA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", diff --git a/storefront/package.json b/storefront/package.json index e8c6bb14..f25fb22b 100644 --- a/storefront/package.json +++ b/storefront/package.json @@ -35,6 +35,7 @@ "devDependencies": { "@element-plus/nuxt": "^1.1.3", "@nuxtjs/apollo": "^5.0.0-alpha.14", + "@types/apollo-upload-client": "^18.0.0", "element-plus": "^2.10.1", "typescript": "^5.8.3", "vue-tsc": "^2.2.10" diff --git a/storefront/pages/profile/settings.vue b/storefront/pages/profile/settings.vue index 3cbbb12b..4bed6d5a 100644 --- a/storefront/pages/profile/settings.vue +++ b/storefront/pages/profile/settings.vue @@ -6,7 +6,7 @@