Fixes: 1) Replace deprecated context usage in `useAvatarUpload` mutation; 2) Resolve incorrect locale parsing in `useDate` utility and fix non-reactive cart state in `profile/cart.vue`; 3) Update stale imports and standardize type naming across composables; Extra: 1) Refactor i18n strings including order status and search-related texts; 2) Replace temporary workarounds with `apollo-upload-client` configuration and add `apollo-upload-link.ts` plugin; 3) Cleanup redundant files, comments, and improve SCSS structure with new variables and placeholders.
32 lines
No EOL
830 B
TypeScript
32 lines
No EOL
830 B
TypeScript
import type {IUser} from "~/types";
|
|
import {useAppConfig} from "~/composables/config";
|
|
import {orderStatuses} from "~/config/constants";
|
|
|
|
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 === orderStatuses.FINISHED).length || 0;
|
|
});
|
|
|
|
const setUser = (data: IUser | null) => {
|
|
user.value = data;
|
|
};
|
|
|
|
return {
|
|
user,
|
|
setUser,
|
|
isAuthenticated,
|
|
finishedOrdersQuantity
|
|
};
|
|
}); |