@towns-protocol/sdk
Version:
For more details, visit the following resources:
34 lines • 1.01 kB
JavaScript
import { ObservableRecord } from '../../observable/observableRecord';
// sorted list of user ids in the stream
export class StreamMemberIdsView extends ObservableRecord {
constructor() {
super({
defaultValue: [],
});
}
setMembers(streamId, memberIds) {
this.setValueFor(streamId, memberIds.sort());
}
addMember(streamId, memberId) {
this.set((prev) => {
const newMemberIds = [memberId, ...(prev[streamId] ?? [])].sort();
return {
...prev,
[streamId]: newMemberIds,
};
});
}
removeMember(streamId, memberId) {
this.set((prev) => {
if (!prev[streamId]) {
return prev;
}
const newMemberIds = prev[streamId]?.filter((id) => id !== memberId);
return {
...prev,
[streamId]: newMemberIds,
};
});
}
}
//# sourceMappingURL=streamMemberIds.js.map