added features and fixes
This commit is contained in:
@@ -5,6 +5,7 @@ export interface Member {
|
||||
id: string;
|
||||
username: string;
|
||||
display_name: string;
|
||||
nickname?: string;
|
||||
avatar: string;
|
||||
status: "online" | "idle" | "dnd" | "offline";
|
||||
status_text: string;
|
||||
@@ -15,6 +16,7 @@ interface MemberState {
|
||||
isLoading: boolean;
|
||||
fetchMembers: (serverId: string) => Promise<void>;
|
||||
updateMemberStatus: (userId: string, status: Member["status"]) => void;
|
||||
setMemberNickname: (serverId: string, userId: string, nickname: string) => Promise<void>;
|
||||
}
|
||||
|
||||
export const useMemberStore = create<MemberState>((set) => ({
|
||||
@@ -46,4 +48,17 @@ export const useMemberStore = create<MemberState>((set) => ({
|
||||
}
|
||||
return { membersByServer: next };
|
||||
}),
|
||||
|
||||
setMemberNickname: async (serverId, userId, nickname) => {
|
||||
await api.patch(`/servers/${serverId}/members/${userId}`, { nickname });
|
||||
set((state) => {
|
||||
const list = state.membersByServer[serverId] || [];
|
||||
const updated = list.map((m) =>
|
||||
m.id === userId ? { ...m, nickname: nickname || undefined } : m
|
||||
);
|
||||
return {
|
||||
membersByServer: { ...state.membersByServer, [serverId]: updated },
|
||||
};
|
||||
});
|
||||
},
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user