feat(auth): add error field to store and remove unused actions

This commit is contained in:
Ilia Mashkov
2026-03-17 13:41:55 +03:00
parent 98146a7996
commit 11b84ddc5d
2 changed files with 30 additions and 16 deletions

View File

@@ -2,12 +2,12 @@ import { create } from "zustand";
import type { AuthStore } from "../../types/store";
import { login, logout, register } from "../../../api";
import { callApi } from "shared/utils";
import { UNEXPECTED_ERROR_MESSAGE } from "shared/config";
export const useAuthStore = create<AuthStore>()((set) => ({
user: undefined,
status: "idle",
setUser: (user) => set({ user }),
setStatus: (status) => set({ status }),
error: null,
login: async (loginData) => {
set({ status: "loading" });
@@ -15,17 +15,21 @@ export const useAuthStore = create<AuthStore>()((set) => ({
const [responseData, loginError] = await callApi(() => login(loginData));
if (loginError) {
set({ status: "unauthenticated" });
set({ status: "unauthenticated", error: loginError });
return;
}
set({
status: "authenticated",
user: responseData?.user,
error: null,
});
} catch (err) {
console.warn(err);
set({ status: "idle" });
console.error(err);
set({
status: "unauthenticated",
error: new Error(UNEXPECTED_ERROR_MESSAGE),
});
}
},
register: async (registerData) => {
@@ -35,17 +39,21 @@ export const useAuthStore = create<AuthStore>()((set) => ({
);
if (registerError) {
set({ status: "unauthenticated" });
set({ status: "unauthenticated", error: registerError });
return;
}
set({
status: "authenticated",
user: responseData?.user,
error: null,
});
} catch (err) {
console.warn(err);
set({ status: "idle" });
console.error(err);
set({
status: "unauthenticated",
error: new Error(UNEXPECTED_ERROR_MESSAGE),
});
}
},
logout: async () => {
@@ -54,13 +62,18 @@ export const useAuthStore = create<AuthStore>()((set) => ({
const [, logoutError] = await callApi(() => logout());
if (logoutError) {
set({ status: "authenticated" });
set({ error: logoutError });
return;
}
set({ status: "unauthenticated", user: undefined });
set({
status: "unauthenticated",
user: undefined,
error: null,
});
} catch (err) {
console.warn(err);
set({ status: "idle" });
console.error(err);
set({ error: new Error(UNEXPECTED_ERROR_MESSAGE) });
}
},
}));