From d3fd5cba166393002e3d658ffa66f518138b8689 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Thu, 5 Jun 2025 20:49:52 +0200 Subject: [PATCH] feat: create user state --- web/src/store/admin/users.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/web/src/store/admin/users.ts b/web/src/store/admin/users.ts index 3244c1c..20cd3b8 100644 --- a/web/src/store/admin/users.ts +++ b/web/src/store/admin/users.ts @@ -1,4 +1,9 @@ -import { adminGetUserApi, adminGetUsersApi } from "@/api/admin/users"; +import { + adminGetUserApi, + adminGetUsersApi, + postUser, + type CreateUserRequest, +} from "@/api/admin/users"; import type { UserProfile } from "@/types"; import { create } from "zustand"; @@ -9,6 +14,9 @@ export interface IUsersState { current: UserProfile | null; fetchingCurrent: boolean; + creating: boolean; + createUser: (req: CreateUserRequest) => Promise; + fetchUsers: () => Promise; fetchUser: (id: string) => Promise; } @@ -17,9 +25,24 @@ export const useUsers = create((set) => ({ users: [], fetching: false, + creating: false, + current: null, fetchingCurrent: false, + createUser: async (req: CreateUserRequest) => { + set({ creating: true }); + + try { + const response = await postUser(req); + console.log("INFO: User has been created:", response); + } catch (err) { + console.log("ERR: Failed to create user:", err); + } finally { + set({ creating: false }); + } + }, + fetchUsers: async () => { set({ fetching: true });