Fixes: 1) Replace `ElNotification` calls with `useNotification` utility across all authentication and user-related composables; 2) Add missing semicolons in multiple index exports and styled components; 3) Resolve issues with reactivity in `useStore` composable by renaming and restructuring product variables; Extra: 1) Refactor localized strings and translations for better readability and maintenance; 2) Tweak styles including scoped styles, z-index adjustments, and SCSS mixins; 3) Remove unused components and imports to streamline storefront layout.
26 lines
No EOL
625 B
TypeScript
26 lines
No EOL
625 B
TypeScript
import { GET_PRODUCT_BY_SLUG } from '~/graphql/queries/standalone/products';
|
|
import type { IProduct, IProductResponse } from '~/types';
|
|
|
|
export async function useProductBySlug(slug: string) {
|
|
const product = useState<IProduct | null>('currentProduct', () => null);
|
|
|
|
const { data, error } = await useAsyncQuery<IProductResponse>(
|
|
GET_PRODUCT_BY_SLUG,
|
|
{ slug }
|
|
);
|
|
|
|
const result = data.value?.products?.edges[0]?.node ?? null;
|
|
if (result) {
|
|
product.value = result;
|
|
}
|
|
|
|
watch(error, (err) => {
|
|
if (err) {
|
|
console.error('useProductBySlug error:', err);
|
|
}
|
|
});
|
|
|
|
return {
|
|
product
|
|
};
|
|
} |