feat: realtime status, mentions, push notifications

This commit is contained in:
2026-06-29 15:52:34 -04:00
parent 282a436995
commit 6c8defb6fd
10 changed files with 387 additions and 34 deletions
+1
View File
@@ -21,6 +21,7 @@ export interface UpdateProfilePayload {
bio?: string;
accent_color?: string;
status_text?: string;
status?: UserStatus;
}
interface AuthState {
+12
View File
@@ -14,6 +14,7 @@ interface MemberState {
membersByServer: Record<string, Member[]>;
isLoading: boolean;
fetchMembers: (serverId: string) => Promise<void>;
updateMemberStatus: (userId: string, status: Member["status"]) => void;
}
export const useMemberStore = create<MemberState>((set) => ({
@@ -34,4 +35,15 @@ export const useMemberStore = create<MemberState>((set) => ({
set({ isLoading: false });
}
},
updateMemberStatus: (userId, status) =>
set((state) => {
const next: Record<string, Member[]> = {};
for (const [serverId, list] of Object.entries(state.membersByServer)) {
next[serverId] = list.map((m) =>
m.id === userId ? { ...m, status } : m,
);
}
return { membersByServer: next };
}),
}));