From 8b5a5744aba576c5f5df64c64a3ad011c980daa4 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Wed, 4 Jun 2025 19:33:12 +0200 Subject: [PATCH] feat: get single user state --- web/src/store/admin/users.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/web/src/store/admin/users.ts b/web/src/store/admin/users.ts index 53d58e8..3244c1c 100644 --- a/web/src/store/admin/users.ts +++ b/web/src/store/admin/users.ts @@ -1,4 +1,4 @@ -import { adminGetUsersApi } from "@/api/admin/users"; +import { adminGetUserApi, adminGetUsersApi } from "@/api/admin/users"; import type { UserProfile } from "@/types"; import { create } from "zustand"; @@ -6,13 +6,20 @@ export interface IUsersState { users: UserProfile[]; fetching: boolean; + current: UserProfile | null; + fetchingCurrent: boolean; + fetchUsers: () => Promise; + fetchUser: (id: string) => Promise; } export const useUsers = create((set) => ({ users: [], fetching: false, + current: null, + fetchingCurrent: false, + fetchUsers: async () => { set({ fetching: true }); @@ -25,4 +32,17 @@ export const useUsers = create((set) => ({ set({ fetching: false }); } }, + + fetchUser: async (id: string) => { + set({ fetchingCurrent: true }); + + try { + const response = await adminGetUserApi(id); + set({ current: response }); + } catch (err) { + console.log("ERR: Failed to fetch single user for admin:", err); + } finally { + set({ fetchingCurrent: false }); + } + }, }));