Fixes: 1) Replace `ElNotification` with `useNotification` across all components and composables; 2) Add missing semicolons, consistent formatting, and type annotations in multiple files; 3) Resolve non-reactive elements in wishlist and cart state management; Extra: 1) Update i18n translations with new strings for promocodes, balance, authentication, and profile settings; 2) Refactor SCSS styles including variable additions and component-specific tweaks; 3) Remove redundant queries, unused imports, and `storePage.ts` file for cleanup.
31 lines
No EOL
768 B
TypeScript
31 lines
No EOL
768 B
TypeScript
import type {IUser} from "~/types";
|
|
import {useAppConfig} from "~/composables/config";
|
|
|
|
export const useUserStore = defineStore('user', () => {
|
|
const { COOKIES_ACCESS_TOKEN_KEY } = useAppConfig();
|
|
const cookieAccess = useCookie(
|
|
COOKIES_ACCESS_TOKEN_KEY,
|
|
{
|
|
default: () => '',
|
|
path: '/'
|
|
}
|
|
);
|
|
|
|
const user = ref<IUser | null>(null);
|
|
|
|
const isAuthenticated = computed(() => Boolean(cookieAccess.value && user.value));
|
|
const finishedOrdersQuantity = computed(() => {
|
|
return user.value?.orders.filter((order) => order.status === 'FINISHED').length || 0;
|
|
});
|
|
|
|
const setUser = (data: IUser | null) => {
|
|
user.value = data;
|
|
};
|
|
|
|
return {
|
|
user,
|
|
setUser,
|
|
isAuthenticated,
|
|
finishedOrdersQuantity
|
|
};
|
|
}); |