File tree Expand file tree Collapse file tree 4 files changed +36
-0
lines changed
packages/feeds-client/src/feeds-client Expand file tree Collapse file tree 4 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ export * from './user/handle-user-updated' ;
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ import {
4141 handleFollowDeleted ,
4242 handleFollowUpdated ,
4343} from '../feed' ;
44+ import { handleUserUpdated } from './event-handlers' ;
4445
4546export 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 }
Original file line number Diff line number Diff line change 1+ export * from './feeds-client' ;
2+ export * from './event-handlers' ;
You can’t perform that action at this time.
0 commit comments