Skip to content

Commit e1c92c5

Browse files
committed
feat: anonymous support
1 parent 639d15e commit e1c92c5

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

projects/stream-chat-angular/src/lib/chat-client.service.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,17 @@ export class ChatClientService<
8484
* Creates a [`StreamChat`](https://github.com/GetStream/stream-chat-js/blob/668b3e5521339f4e14fc657834531b4c8bf8176b/src/client.ts#L124) instance using the provided `apiKey`, and connects a user with the given meta data and token. More info about [connecting users](https://getstream.io/chat/docs/javascript/init_and_users/?language=javascript) can be found in the platform documentation.
8585
* @param apiKey
8686
* @param userOrId
87-
* @param userTokenOrProvider You can provide a token, or the keyword 'guest' to connect as [guest user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#guest-users)
87+
* @param userTokenOrProvider You can provide:<ul>
88+
* <li> a token,
89+
* <li> the keyword 'guest' to connect as [guest user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#guest-users)
90+
* <li> the keyword 'anonymous' to connect as [anonymous user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#anonymous-users)
91+
* </ul>
8892
* @param clientOptions Setting to provide to the Stream client instance
8993
*/
9094
async init(
9195
apiKey: string,
9296
userOrId: string | OwnUserResponse<T> | UserResponse<T>,
93-
userTokenOrProvider: TokenOrProvider | 'guest',
97+
userTokenOrProvider: TokenOrProvider | 'anonymous' | 'guest',
9498
clientOptions?: StreamChatOptions
9599
): ConnectAPIResponse<T> {
96100
this.chatClient = StreamChat.getInstance<T>(apiKey, clientOptions);
@@ -99,10 +103,13 @@ export class ChatClientService<
99103
await this.ngZone.runOutsideAngular(async () => {
100104
const user = typeof userOrId === 'string' ? { id: userOrId } : userOrId;
101105
try {
102-
result =
103-
userTokenOrProvider === 'guest'
104-
? await this.chatClient.setGuestUser(user)
105-
: await this.chatClient.connectUser(user, userTokenOrProvider);
106+
result = await (
107+
{
108+
guest: () => this.chatClient.setGuestUser(user),
109+
anonymous: () => this.chatClient.connectAnonymousUser(),
110+
}[`${userTokenOrProvider}`] ??
111+
(() => this.chatClient.connectUser(user, userTokenOrProvider))
112+
)();
106113
} catch (error) {
107114
this.notificationService.addPermanentNotification(
108115
'streamChat.Error connecting to chat, refresh the page to try again.',

0 commit comments

Comments
 (0)