added features and fixes

This commit is contained in:
2026-07-02 15:34:00 +00:00
parent eb5b7d55a4
commit 89f8381e2d
30 changed files with 1718 additions and 206 deletions
+15
View File
@@ -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 },
};
});
},
}));