29 lines
723 B
TypeScript
29 lines
723 B
TypeScript
import { orderStatuses } from '@appConstants';
|
|
import type { IUser } from '@types';
|
|
|
|
export const useUserStore = defineStore('user', () => {
|
|
const { $appHelpers } = useNuxtApp();
|
|
|
|
const cookieAccess = useCookie($appHelpers.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,
|
|
};
|
|
});
|