Skip to content

Commit 9009048

Browse files
committed
feat: add useSessionAuth method
1 parent c79f031 commit 9009048

File tree

6 files changed

+49
-15
lines changed

6 files changed

+49
-15
lines changed

.changeset/huge-ducks-do.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"react-use-zendesk": minor
3+
---
4+
5+
add useSessionAuth method

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ const Home = () => {
4343
const { open, unreadMessages } = useZendesk();
4444

4545
return <div>
46-
you have ${unreadMessages} messages!
47-
<button onClick={open}>Open chat now</button>
46+
you have ${unreadMessages} messages!
47+
<button onClick={open}>Open chat now</button>
4848
</div>;
4949
};
5050
```
@@ -78,10 +78,10 @@ const App = () => {
7878
7979
return (
8080
<ZendeskProvider
81-
apiKey={process.env.KEY || ""}
82-
onOpen={handleOpen}
83-
onClose={handleClose}
84-
onUnreadMessages={handleUnreadMessages}
81+
apiKey={process.env.KEY || ""}
82+
onOpen={handleOpen}
83+
onClose={handleClose}
84+
onUnreadMessages={handleUnreadMessages}
8585
>
8686
<p>fake child example</p>
8787
</ZendeskProvider>
@@ -112,6 +112,7 @@ Library add some useful fields.
112112
| setConversationFields | (conversationFields: ZendeskConversationField[]) => void | Allows values for conversation fields to be set in the client to add contextual data about the conversation.
113113
| setConversationTags | (conversationTags: string[]) => void | Allows custom conversation tags to be set in the client to add contextual data about the conversation
114114
| loginUser | (jwtToken: string, loginCallback?: (error: null/LoginFailedError) => void) => void | If your application has a login flow, or if a user needs to access the same conversation from multiple devices. See details on [Zendesk docs](https://developer.zendesk.com/api-reference/widget-messaging/web/authentication/). Error is mapped with the same error of official documentation.
115+
| useSessionAuth | () => void | See details on [Zendesk docs](https://developer.zendesk.com/api-reference/widget-messaging/web/authentication/).
115116
| logoutUser | () => void | Your app may have a logout function that brings users back to a login screen. In this case, revert the messaging Web Widget to a pre-login state
116117
| resetWidget | () => void | This method clears all widget local state, including user data, conversations, and connections.
117118
| isOpen | boolean | this flag indicates if chat is visible or hidden. Derivated from from `onOpen` and `onCLose`

apps/docs/app/components/ExampleList.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,26 @@ export const ExampleList: React.FC = () => {
260260
resetWidget();
261261
},
262262
},
263+
{
264+
id: "useSessionAuth",
265+
title: "useSessionAuth",
266+
buttonText: "useSessionAuth",
267+
description: (
268+
<div>
269+
For use when the Web Widget is embedded in a Zendesk help center. To
270+
learn more about Reset Widget see{" "}
271+
<a
272+
href="https://developer.zendesk.com/api-reference/widget-messaging/web/authentication/#use-session-auth"
273+
target="_blank"
274+
>
275+
useSessionAuth
276+
</a>
277+
</div>
278+
),
279+
onClick({ useSessionAuth }) {
280+
useSessionAuth();
281+
},
282+
},
263283
];
264284
return (
265285
<>

packages/react-use-zendesk/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ Library add some useful fields.
112112
| setConversationFields | (conversationFields: ZendeskConversationField[]) => void | Allows values for conversation fields to be set in the client to add contextual data about the conversation.
113113
| setConversationTags | (conversationTags: string[]) => void | Allows custom conversation tags to be set in the client to add contextual data about the conversation
114114
| loginUser | (jwtToken: string, loginCallback?: (error: null/LoginFailedError) => void) => void | If your application has a login flow, or if a user needs to access the same conversation from multiple devices. See details on [Zendesk docs](https://developer.zendesk.com/api-reference/widget-messaging/web/authentication/). Error is mapped with the same error of official documentation.
115+
| useSessionAuth | () => void | See details on [Zendesk docs](https://developer.zendesk.com/api-reference/widget-messaging/web/authentication/).
115116
| logoutUser | () => void | Your app may have a logout function that brings users back to a login screen. In this case, revert the messaging Web Widget to a pre-login state
116117
| resetWidget | () => void | This method clears all widget local state, including user data, conversations, and connections.
117118
| isOpen | boolean | this flag indicates if chat is visible or hidden. Derivated from from `onOpen` and `onCLose`

packages/react-use-zendesk/src/provider.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export const ZendeskProvider: React.FC<
6262
setUnreadMessages(unreadMessages);
6363
!!onUnreadMessagesRef.current &&
6464
onUnreadMessagesRef.current(unreadMessages);
65-
},
65+
}
6666
);
6767

6868
isRegisteredCb.current = true;
@@ -108,31 +108,31 @@ export const ZendeskProvider: React.FC<
108108
(conversationFields: Array<ZendeskConversationField>) => {
109109
ZendeskApi("messenger:set", "conversationFields", conversationFields);
110110
},
111-
[],
111+
[]
112112
);
113113

114114
const setConversationTags = React.useCallback(
115115
(conversationTags: Array<string>) => {
116116
ZendeskApi("messenger:set", "conversationTags", conversationTags);
117117
},
118-
[],
118+
[]
119119
);
120120

121121
const loginUser = React.useCallback(
122122
(
123123
jwtToken: string,
124-
loginCallback?: (error: null | LoginFailedError) => void,
124+
loginCallback?: (error: null | LoginFailedError) => void
125125
) => {
126126
ZendeskApi(
127127
"messenger",
128128
"loginUser",
129129
(jwtTokenCb: (token: string) => void) => {
130130
jwtTokenCb(jwtToken);
131131
},
132-
loginCallback,
132+
loginCallback
133133
);
134134
},
135-
[],
135+
[]
136136
);
137137

138138
const logoutUser = React.useCallback(() => {
@@ -145,6 +145,10 @@ export const ZendeskProvider: React.FC<
145145
});
146146
}, []);
147147

148+
const useSessionAuth = React.useCallback(() => {
149+
ZendeskApi("messenger", "useSessionAuth");
150+
}, []);
151+
148152
const initialProviderValue: ZendeskContextValues = {
149153
show,
150154
hide,
@@ -158,6 +162,7 @@ export const ZendeskProvider: React.FC<
158162
loginUser,
159163
logoutUser,
160164
resetWidget,
165+
useSessionAuth,
161166
isOpen,
162167
unreadMessages,
163168
};

packages/react-use-zendesk/src/types.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ export type ZendeskContextValues = {
2626
setZIndex: (newZIndex: number) => void;
2727
setCookies: (isEnabled: boolean) => void;
2828
setConversationFields: (
29-
conversationFields: Array<ZendeskConversationField>,
29+
conversationFields: Array<ZendeskConversationField>
3030
) => void;
3131
setConversationTags: (conversationTags: Array<string>) => void;
3232
loginUser: (
3333
jwtToken: string,
34-
loginCallback?: (error: null | LoginFailedError) => void,
34+
loginCallback?: (error: null | LoginFailedError) => void
3535
) => void;
3636
logoutUser: () => void;
3737
resetWidget: () => void;
38+
useSessionAuth: () => void;
3839
isOpen: boolean;
3940
unreadMessages: number | undefined;
4041
};
@@ -52,4 +53,5 @@ export type ZendeskMethod =
5253
| "conversationTags"
5354
| "loginUser"
5455
| "logoutUser"
55-
| "resetWidget";
56+
| "resetWidget"
57+
| "useSessionAuth";

0 commit comments

Comments
 (0)