Skip to content

Commit

Permalink
Set initial state for members in hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
Dominik Piatek committed Jul 31, 2023
1 parent 67dbf9b commit 27b09f0
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions demo-react/src/hooks/useMembers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import { useEffect, useState, useContext } from 'react';
import { type SpaceMember } from '@ably-labs/spaces';
import { SpacesContext } from '../components';

const membersToOthers = (members: SpaceMember[] = [], self: SpaceMember | undefined): SpaceMember[] =>
members.filter((m) => m.connectionId !== self?.connectionId);

export const useMembers: () => Partial<{ self: SpaceMember; others: SpaceMember[]; members: SpaceMember[] }> = () => {
const space = useContext(SpacesContext);
const [members, setMembers] = useState<SpaceMember[]>([]);
Expand All @@ -11,6 +14,13 @@ export const useMembers: () => Partial<{ self: SpaceMember; others: SpaceMember[
useEffect(() => {
if (!space) return;

const initSelf = space.getSelf();
const initMembers = space.getMembers();

setSelf(initSelf);
setMembers(initMembers);
setOthers(membersToOthers(initMembers, initSelf));

const handler = (members: SpaceMember[]) => {
const self = space.getSelf();
setSelf(self);
Expand Down

0 comments on commit 27b09f0

Please sign in to comment.