schon/storefront/nuxt-app.d.ts
Alexandr SaVBaD Waltz 2ea18eb8a6 feat(storefront): refactor i18n and cart/wishlist handling for improved user experience
Refactored i18n configuration, replacing `DEFAULT_LOCALE` with `DEFAULT_LOCALE_FALLBACK` and enhancing environment-based locale validation. Improved cookie persistence for cart and wishlist, ensuring fallback handling for unauthenticated users.

Enhancements:
- Added `createProjectKey` utility for consistent project key generation.
- Reworked cart and wishlist composables (`useOrderOverwrite`, `useWishlistOverwrite`) to decouple product identifier and handle cookies robustly.
- Centralized `DEFAULT_LOCALE` logic for better maintainability.
- Refined `useOrderSync` and `useWishlistSync` for clean synchronization across auth states.
- Updated SCSS in hero and header styles for alignment corrections.

Breaking Changes: `DEFAULT_LOCALE` constant removed; replaced with runtime config and fallback logic. Consumers must adapt to `DEFAULT_LOCALE_FALLBACK` and `$appHelpers.DEFAULT_LOCALE`.
2026-02-28 22:38:45 +03:00

41 lines
935 B
TypeScript

import type { ApolloClient, NormalizedCacheObject } from '@apollo/client/core';
import type { ApolloError } from '@apollo/client/errors';
declare module '#app' {
interface NuxtApp {
$appHelpers?: {
APP_DOMAIN: string;
APP_NAME: string;
APP_NAME_KEY: string;
DEFAULT_LOCALE: string;
COOKIES_LOCALE_KEY: string;
COOKIES_REFRESH_TOKEN_KEY: string;
COOKIES_ACCESS_TOKEN_KEY: string;
COOKIES_PRODUCT_VIEW_KEY: string;
COOKIES_THEME_KEY: string;
};
$apollo: {
defaultClient: ApolloClient<NormalizedCacheObject>;
};
}
interface NuxtConfig {
apollo?: {
autoImports?: boolean;
clients?: {
default?: {
httpEndpoint: string;
connectToDevTools?: boolean;
authType?: string;
authHeader?: string;
tokenStorage?: 'cookie' | 'localStorage';
tokenName?: string;
};
};
};
}
interface RuntimeNuxtHooks {
'apollo:error': (error: ApolloError) => void;
}
}