schon/storefront/stores/user.ts
Alexandr SaVBaD Waltz c60ac13e88 Features: 1) Introduce handleDeposit function with validation logic and deposit transaction flow; 2) Add useDeposit composable and balance.vue page for user account balance management; 3) Enhance wishlist and cart functionality with authentication checks and notification improvements;
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.
2025-07-08 23:41:31 +03:00

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
};
});