Skip to content

Commit 156a862

Browse files
Add handle-user-updated
1 parent dd35201 commit 156a862

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './user/handle-user-updated';
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import type { EventPayload } from '../../../types-internal';
2+
import type { FeedsClient, FeedsClientState } from '../../feeds-client';
3+
4+
export function handleUserUpdated(
5+
this: FeedsClient,
6+
event: EventPayload<'user.updated'>,
7+
) {
8+
this.state.next((currentState) => {
9+
let newState: FeedsClientState | undefined;
10+
11+
const { connected_user } = currentState;
12+
13+
if (connected_user && connected_user.id === event.user.id) {
14+
newState ??= {
15+
...currentState,
16+
};
17+
18+
newState.connected_user = {
19+
...connected_user,
20+
...event.user,
21+
};
22+
}
23+
24+
// TODO: update other users in user map (if/once applicable)
25+
26+
return newState ?? currentState;
27+
});
28+
}

packages/feeds-client/src/feeds-client/feeds-client.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import {
4141
handleFollowDeleted,
4242
handleFollowUpdated,
4343
} from '../feed';
44+
import { handleUserUpdated } from './event-handlers';
4445

4546
export type FeedsClientState = {
4647
connected_user: OwnUser | undefined;
@@ -194,6 +195,10 @@ export class FeedsClient extends FeedsApi {
194195

195196
break;
196197
}
198+
case 'user.updated': {
199+
handleUserUpdated.call(this, event);
200+
break;
201+
}
197202
default: {
198203
feed?.handleWSEvent(event as unknown as WSEvent);
199204
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './feeds-client';
2+
export * from './event-handlers';

0 commit comments

Comments
 (0)