@parlr/react-native 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +376 -172
- package/lib/commonjs/core/api.js +18 -1
- package/lib/commonjs/core/api.js.map +1 -1
- package/lib/module/core/api.js +18 -1
- package/lib/module/core/api.js.map +1 -1
- package/lib/typescript/commonjs/core/api.d.ts.map +1 -1
- package/lib/typescript/module/core/api.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/core/api.ts +14 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<strong>The official Parlr live chat SDK for React Native.</strong><br />
|
|
9
|
-
Add real-time customer messaging to your
|
|
9
|
+
Add real-time customer messaging to your iOS & Android app in minutes.
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
@@ -20,32 +20,37 @@
|
|
|
20
20
|
<a href="#quick-start">Quick Start</a> •
|
|
21
21
|
<a href="#components">Components</a> •
|
|
22
22
|
<a href="#hooks">Hooks</a> •
|
|
23
|
+
<a href="#user-identification">User Identification</a> •
|
|
23
24
|
<a href="#theming">Theming</a> •
|
|
24
25
|
<a href="#api-reference">API Reference</a> •
|
|
25
|
-
<a href="
|
|
26
|
+
<a href="#changelog">Changelog</a>
|
|
26
27
|
</p>
|
|
27
28
|
|
|
28
29
|
---
|
|
29
30
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
31
|
+
## Features
|
|
32
|
+
|
|
33
|
+
| Feature | Description |
|
|
34
|
+
|---|---|
|
|
35
|
+
| **Real-time messaging** | WebSocket with automatic reconnection and exponential backoff |
|
|
36
|
+
| **Optimistic UI** | Messages appear instantly, sync in the background |
|
|
37
|
+
| **Typing indicators** | Show when agents are typing, send visitor typing events |
|
|
38
|
+
| **Read receipts** | Delivery status tracking (`sending` → `sent` → `read`) |
|
|
39
|
+
| **Pre-built UI components** | Drop-in `<ParlrChat>` and `<ParlrConversationList>` |
|
|
40
|
+
| **Pre-chat forms** | Collect visitor info (name, email, phone) before the first message |
|
|
41
|
+
| **CSAT surveys** | Satisfaction rating after conversation resolution |
|
|
42
|
+
| **File attachments** | Images and documents via `expo-image-picker` / `expo-document-picker` |
|
|
43
|
+
| **Rich messages** | Cards, carousels, quick replies rendered natively |
|
|
44
|
+
| **Offline queue** | Messages are queued and retried when connectivity returns |
|
|
45
|
+
| **Push notifications** | FCM (Android) and APNs (iOS) support |
|
|
46
|
+
| **Device metadata** | Platform, OS, screen size, locale, timezone — sent automatically |
|
|
47
|
+
| **User identification** | Flexible: `name`, `firstName`/`lastName`, `email`, `externalId` |
|
|
48
|
+
| **HMAC verification** | Prevent contact impersonation with server-side tokens |
|
|
49
|
+
| **Dark mode** | Automatic system detection + full theme customization |
|
|
50
|
+
| **TypeScript-first** | Complete type definitions for all APIs, hooks, and components |
|
|
51
|
+
| **Tiny footprint** | ~160 KB published size, 1 runtime dependency (`axios`) |
|
|
52
|
+
|
|
53
|
+
Works with **Expo** (managed & bare) and **bare React Native** projects.
|
|
49
54
|
|
|
50
55
|
---
|
|
51
56
|
|
|
@@ -53,13 +58,11 @@ Parlr is a modern B2B live chat platform. This SDK gives your React Native app:
|
|
|
53
58
|
|
|
54
59
|
```bash
|
|
55
60
|
npm install @parlr/react-native
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
```bash
|
|
61
|
+
# or
|
|
59
62
|
yarn add @parlr/react-native
|
|
60
63
|
```
|
|
61
64
|
|
|
62
|
-
###
|
|
65
|
+
### Required peer dependency
|
|
63
66
|
|
|
64
67
|
```bash
|
|
65
68
|
npm install react-native-reanimated
|
|
@@ -68,27 +71,25 @@ npm install react-native-reanimated
|
|
|
68
71
|
### Optional dependencies
|
|
69
72
|
|
|
70
73
|
```bash
|
|
71
|
-
#
|
|
74
|
+
# Secure session persistence (recommended)
|
|
72
75
|
npm install expo-secure-store
|
|
73
76
|
|
|
74
|
-
#
|
|
77
|
+
# File & image attachments
|
|
75
78
|
npm install expo-image-picker expo-document-picker
|
|
76
79
|
```
|
|
77
80
|
|
|
78
|
-
> Without `expo-secure-store`, sessions are stored in memory
|
|
79
|
-
|
|
80
|
-
### Compatibility
|
|
81
|
+
> **Note:** Without `expo-secure-store`, sessions are stored in memory and won't persist across app restarts. Users will get a new session each time.
|
|
81
82
|
|
|
82
|
-
|
|
83
|
-
|---|---|
|
|
84
|
-
| `react` | 18.0.0 |
|
|
85
|
-
| `react-native` | 0.72.0 |
|
|
86
|
-
| `react-native-reanimated` | 3.0.0 |
|
|
87
|
-
| `expo-secure-store` | 13.0.0 *(optional)* |
|
|
88
|
-
| `expo-image-picker` | 15.0.0 *(optional)* |
|
|
89
|
-
| `expo-document-picker` | 12.0.0 *(optional)* |
|
|
83
|
+
### Compatibility matrix
|
|
90
84
|
|
|
91
|
-
|
|
85
|
+
| Package | Minimum version | Required |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| `react` | 18.0.0 | Yes |
|
|
88
|
+
| `react-native` | 0.72.0 | Yes |
|
|
89
|
+
| `react-native-reanimated` | 3.0.0 | Yes |
|
|
90
|
+
| `expo-secure-store` | 13.0.0 | No |
|
|
91
|
+
| `expo-image-picker` | 15.0.0 | No |
|
|
92
|
+
| `expo-document-picker` | 12.0.0 | No |
|
|
92
93
|
|
|
93
94
|
---
|
|
94
95
|
|
|
@@ -108,7 +109,7 @@ export default function App() {
|
|
|
108
109
|
}
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
### 2.
|
|
112
|
+
### 2. Add the chat screen
|
|
112
113
|
|
|
113
114
|
```tsx
|
|
114
115
|
import { ParlrChat } from '@parlr/react-native';
|
|
@@ -116,7 +117,11 @@ import { ParlrChat } from '@parlr/react-native';
|
|
|
116
117
|
function SupportScreen({ navigation }) {
|
|
117
118
|
return (
|
|
118
119
|
<ParlrChat
|
|
119
|
-
user={{
|
|
120
|
+
user={{
|
|
121
|
+
email: 'alice@acme.com',
|
|
122
|
+
firstName: 'Alice',
|
|
123
|
+
lastName: 'Martin',
|
|
124
|
+
}}
|
|
120
125
|
onBack={() => navigation.goBack()}
|
|
121
126
|
/>
|
|
122
127
|
);
|
|
@@ -148,7 +153,7 @@ function SupportButton() {
|
|
|
148
153
|
|
|
149
154
|
### `<ParlrProvider>`
|
|
150
155
|
|
|
151
|
-
Root wrapper that initializes the SDK. Place it near the top of your component tree.
|
|
156
|
+
Root wrapper that initializes the SDK, manages the session, and opens the WebSocket connection. Place it near the top of your component tree (above any screen that uses Parlr hooks or components).
|
|
152
157
|
|
|
153
158
|
```tsx
|
|
154
159
|
<ParlrProvider
|
|
@@ -164,27 +169,31 @@ Root wrapper that initializes the SDK. Place it near the top of your component t
|
|
|
164
169
|
|
|
165
170
|
| Prop | Type | Default | Description |
|
|
166
171
|
|---|---|---|---|
|
|
167
|
-
| `workspaceId` | `string` | *required* | Your Parlr workspace ID |
|
|
172
|
+
| `workspaceId` | `string` | *required* | Your Parlr workspace ID (find it in **Settings > Channels > Mobile SDK**) |
|
|
168
173
|
| `apiBaseUrl` | `string` | `https://api.parlr.chat/api/v1/widget` | REST API base URL |
|
|
169
174
|
| `wsUrl` | `string` | `wss://ws.parlr.chat/ws` | WebSocket endpoint |
|
|
170
|
-
| `locale` | `string` | `"fr"` | BCP-47 locale (`"fr"`
|
|
171
|
-
| `debug` | `boolean` | `false` | Enable verbose console logging |
|
|
172
|
-
| `theme` | `Partial<ParlrTheme>` | auto | Theme overrides (see [Theming](#theming)) |
|
|
173
|
-
| `identityToken` | `string` | — | HMAC token for identity verification |
|
|
174
|
-
| `onError` | `(error: ParlrError) => void` | — | Global error callback |
|
|
175
|
+
| `locale` | `string` | `"fr"` | BCP-47 locale code (`"fr"`, `"en"`, `"es"`, `"de"`, `"ar"`) |
|
|
176
|
+
| `debug` | `boolean` | `false` | Enable verbose console logging (API calls, WS events, session lifecycle) |
|
|
177
|
+
| `theme` | `Partial<ParlrTheme>` | auto | Theme overrides merged with system light/dark theme (see [Theming](#theming)) |
|
|
178
|
+
| `identityToken` | `string` | — | HMAC token for secure identity verification (see [HMAC Verification](#identity-verification-hmac)) |
|
|
179
|
+
| `onError` | `(error: ParlrError) => void` | — | Global error callback for monitoring |
|
|
175
180
|
|
|
176
181
|
---
|
|
177
182
|
|
|
178
183
|
### `<ParlrChat>`
|
|
179
184
|
|
|
180
|
-
Full-featured chat screen. Handles
|
|
185
|
+
Full-featured chat screen. Handles session initialization, WebSocket, message sending/receiving, typing indicators, attachments, and CSAT surveys — all in one component.
|
|
181
186
|
|
|
182
187
|
```tsx
|
|
183
188
|
<ParlrChat
|
|
184
|
-
user={{
|
|
185
|
-
|
|
189
|
+
user={{
|
|
190
|
+
email: 'alice@acme.com',
|
|
191
|
+
firstName: 'Alice',
|
|
192
|
+
lastName: 'Martin',
|
|
193
|
+
company: 'Acme Inc',
|
|
194
|
+
}}
|
|
186
195
|
onBack={() => navigation.goBack()}
|
|
187
|
-
headerTitle="Support"
|
|
196
|
+
headerTitle="Help & Support"
|
|
188
197
|
showPreChatForm={true}
|
|
189
198
|
preChatFields={['name', 'email']}
|
|
190
199
|
showSatisfactionSurvey={true}
|
|
@@ -193,25 +202,25 @@ Full-featured chat screen. Handles everything: session, WebSocket, messages, inp
|
|
|
193
202
|
|
|
194
203
|
| Prop | Type | Default | Description |
|
|
195
204
|
|---|---|---|---|
|
|
196
|
-
| `user` | `ParlrUser` | — | Identify the user on mount |
|
|
197
|
-
| `conversationId` | `string` | — | Resume an existing conversation |
|
|
198
|
-
| `onBack` | `() => void` | — | Back button handler (shows arrow
|
|
205
|
+
| `user` | [`ParlrUser`](#parlruser) | — | Identify the user on mount (see [User Identification](#user-identification)) |
|
|
206
|
+
| `conversationId` | `string` | — | Resume an existing conversation (omit to start fresh) |
|
|
207
|
+
| `onBack` | `() => void` | — | Back button handler (shows back arrow when provided) |
|
|
199
208
|
| `headerTitle` | `string` | `"Support"` | Header bar title |
|
|
200
|
-
| `placeholder` | `string` | `"Write a message..."` | Input placeholder |
|
|
209
|
+
| `placeholder` | `string` | `"Write a message..."` | Input placeholder text |
|
|
201
210
|
| `accentColor` | `string` | `theme.colors.primary` | Accent color override |
|
|
202
|
-
| `showHeader` | `boolean` | `true` | Show/hide header bar |
|
|
203
|
-
| `showPreChatForm` | `boolean` | `false` | Collect user info before first message |
|
|
204
|
-
| `preChatFields` | `Array<'name' \| 'email' \| 'phone'>` | `['name', 'email']` |
|
|
205
|
-
| `showSatisfactionSurvey` | `boolean` | `true` | Show CSAT after conversation closes |
|
|
206
|
-
| `onConversationClosed` | `() => void` | — | Callback when conversation is closed |
|
|
211
|
+
| `showHeader` | `boolean` | `true` | Show/hide the header bar |
|
|
212
|
+
| `showPreChatForm` | `boolean` | `false` | Collect user info before the first message |
|
|
213
|
+
| `preChatFields` | `Array<'name' \| 'email' \| 'phone'>` | `['name', 'email']` | Which fields to show in the pre-chat form |
|
|
214
|
+
| `showSatisfactionSurvey` | `boolean` | `true` | Show CSAT survey after conversation closes |
|
|
215
|
+
| `onConversationClosed` | `() => void` | — | Callback fired when a conversation is closed |
|
|
207
216
|
|
|
208
|
-
**Built-in features:** online/offline status, three-dot menu (close/reopen), optimistic
|
|
217
|
+
**Built-in features:** online/offline status indicator, three-dot menu (close/reopen), optimistic message sending, agent typing animation, attachment picker with preview, message pagination (infinite scroll), auto-scroll to latest, closed conversation banner, CSAT star rating.
|
|
209
218
|
|
|
210
219
|
---
|
|
211
220
|
|
|
212
221
|
### `<ParlrConversationList>`
|
|
213
222
|
|
|
214
|
-
Displays a list of conversations with last message preview, unread badges, and status.
|
|
223
|
+
Displays a list of conversations with last message preview, unread badges, assignee avatar, and status indicator.
|
|
215
224
|
|
|
216
225
|
```tsx
|
|
217
226
|
<ParlrConversationList
|
|
@@ -223,10 +232,10 @@ Displays a list of conversations with last message preview, unread badges, and s
|
|
|
223
232
|
|
|
224
233
|
| Prop | Type | Default | Description |
|
|
225
234
|
|---|---|---|---|
|
|
226
|
-
| `onSelectConversation` | `(id: string) => void` | *required* |
|
|
235
|
+
| `onSelectConversation` | `(id: string) => void` | *required* | Callback when tapping a conversation |
|
|
227
236
|
| `onNewConversation` | `() => void` | — | "New conversation" button handler |
|
|
228
237
|
| `headerTitle` | `string` | `"Conversations"` | Header title |
|
|
229
|
-
| `statusFilter` | `'open' \| 'closed' \| 'pending'` | — | Filter by status |
|
|
238
|
+
| `statusFilter` | `'open' \| 'closed' \| 'pending'` | — | Filter conversations by status |
|
|
230
239
|
| `showHeader` | `boolean` | `true` | Show/hide header |
|
|
231
240
|
| `accentColor` | `string` | `"#6366f1"` | Accent color |
|
|
232
241
|
|
|
@@ -234,21 +243,19 @@ Displays a list of conversations with last message preview, unread badges, and s
|
|
|
234
243
|
|
|
235
244
|
### Lower-level components
|
|
236
245
|
|
|
237
|
-
These are used internally by `ParlrChat` but are exported for custom UIs:
|
|
246
|
+
These are used internally by `ParlrChat` but are exported for building custom UIs:
|
|
238
247
|
|
|
239
248
|
| Component | Description |
|
|
240
249
|
|---|---|
|
|
241
250
|
| `<ChatBubble message={msg} />` | Single message bubble (agent left, contact right) |
|
|
242
251
|
| `<TypingIndicator />` | Animated three-dot typing indicator |
|
|
243
|
-
| `<EmptyState />` | Welcome screen when no messages exist |
|
|
244
|
-
| `<PreChatForm onSubmit={fn} />` | Pre-chat information form |
|
|
245
|
-
| `<SatisfactionSurvey onSubmit={fn} />` | CSAT 1
|
|
246
|
-
| `<AttachmentPicker onFilePicked={fn} />` | Photo/camera/file picker |
|
|
247
|
-
| `<AttachmentPreview file={f} onSend={fn} />` |
|
|
252
|
+
| `<EmptyState />` | Welcome screen shown when no messages exist |
|
|
253
|
+
| `<PreChatForm onSubmit={fn} />` | Pre-chat information collection form |
|
|
254
|
+
| `<SatisfactionSurvey onSubmit={fn} />` | CSAT 1–5 star rating survey |
|
|
255
|
+
| `<AttachmentPicker onFilePicked={fn} />` | Photo / camera / document file picker |
|
|
256
|
+
| `<AttachmentPreview file={f} onSend={fn} />` | Attachment preview before sending |
|
|
248
257
|
| `<RichMessage content={rich} />` | Cards, carousels, quick replies |
|
|
249
258
|
|
|
250
|
-
See the [API Reference](#api-reference) for full prop tables.
|
|
251
|
-
|
|
252
259
|
---
|
|
253
260
|
|
|
254
261
|
## Hooks
|
|
@@ -259,20 +266,24 @@ Access SDK state from any component inside `<ParlrProvider>`.
|
|
|
259
266
|
|
|
260
267
|
```tsx
|
|
261
268
|
const {
|
|
262
|
-
isReady, // SDK initialized
|
|
263
|
-
isConnected, // WebSocket connected
|
|
264
|
-
session, // Current
|
|
265
|
-
conversations, // All conversations
|
|
266
|
-
unreadCount, // Total unread messages
|
|
267
|
-
identify, // Identify or update user
|
|
268
|
-
refreshConversations, // Force
|
|
269
|
-
theme, // Resolved theme
|
|
269
|
+
isReady, // true when SDK is initialized and session is active
|
|
270
|
+
isConnected, // true when WebSocket is connected
|
|
271
|
+
session, // Current session (token, contactId, workspaceId)
|
|
272
|
+
conversations, // All conversations for this contact
|
|
273
|
+
unreadCount, // Total unread messages across all conversations
|
|
274
|
+
identify, // Identify or update the current user
|
|
275
|
+
refreshConversations, // Force-refresh the conversation list
|
|
276
|
+
theme, // Resolved theme (light/dark + user overrides)
|
|
270
277
|
} = useParlr();
|
|
278
|
+
```
|
|
271
279
|
|
|
272
|
-
|
|
280
|
+
**Identifying a user:**
|
|
281
|
+
|
|
282
|
+
```tsx
|
|
273
283
|
await identify({
|
|
274
284
|
email: 'alice@acme.com',
|
|
275
|
-
|
|
285
|
+
firstName: 'Alice',
|
|
286
|
+
lastName: 'Martin',
|
|
276
287
|
company: 'Acme Inc',
|
|
277
288
|
customAttributes: { plan: 'pro', mrr: 299 },
|
|
278
289
|
});
|
|
@@ -286,41 +297,142 @@ Manage a single conversation with real-time updates.
|
|
|
286
297
|
|
|
287
298
|
```tsx
|
|
288
299
|
const {
|
|
289
|
-
messages, //
|
|
290
|
-
isLoading, //
|
|
291
|
-
hasError, //
|
|
292
|
-
conversation, // Active conversation
|
|
293
|
-
agentTyping, //
|
|
294
|
-
sendMessage, // Send a text message (optimistic)
|
|
295
|
-
retryMessage, // Retry a failed message
|
|
296
|
-
notifyTyping, // Send typing indicator (debounced 3s)
|
|
297
|
-
loadMore, // Load older messages
|
|
298
|
-
hasMore, //
|
|
300
|
+
messages, // Message array (oldest first)
|
|
301
|
+
isLoading, // true during initial load
|
|
302
|
+
hasError, // true if an error occurred
|
|
303
|
+
conversation, // Active conversation metadata
|
|
304
|
+
agentTyping, // true when an agent is typing (auto-clears after 5s)
|
|
305
|
+
sendMessage, // Send a text message (appears instantly via optimistic UI)
|
|
306
|
+
retryMessage, // Retry a failed message by clientId
|
|
307
|
+
notifyTyping, // Send typing indicator to the server (debounced 3s)
|
|
308
|
+
loadMore, // Load older messages (pagination)
|
|
309
|
+
hasMore, // true if more pages are available
|
|
299
310
|
closeConversation, // Close the conversation
|
|
300
311
|
reopenConversation, // Reopen a closed conversation
|
|
301
312
|
} = useChat(conversationId);
|
|
313
|
+
```
|
|
302
314
|
|
|
303
|
-
|
|
315
|
+
**Sending messages:**
|
|
316
|
+
|
|
317
|
+
```tsx
|
|
318
|
+
// Appears instantly with status "sending", then updates to "sent" on server confirmation
|
|
304
319
|
await sendMessage('Hello, I need help with my order');
|
|
305
320
|
|
|
306
321
|
// Retry a failed message
|
|
307
322
|
const failed = messages.find(m => m.status === 'failed');
|
|
308
|
-
if (failed?.clientId)
|
|
323
|
+
if (failed?.clientId) {
|
|
324
|
+
await retryMessage(failed.clientId);
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**How optimistic sending works:**
|
|
329
|
+
|
|
330
|
+
1. `sendMessage()` inserts the message locally with status `sending`
|
|
331
|
+
2. The REST API is called in the background
|
|
332
|
+
3. On success → status updates to `sent`
|
|
333
|
+
4. On failure → status updates to `failed` (retryable up to 3 times with exponential backoff: 1s, 2s, 4s)
|
|
334
|
+
5. When the same message arrives via WebSocket, it's deduplicated by `clientId`
|
|
335
|
+
6. If no `conversationId` is provided, a new conversation is created automatically on the first `sendMessage()`
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## User Identification
|
|
340
|
+
|
|
341
|
+
The SDK supports flexible user identification through the `ParlrUser` interface. You can identify users in two ways:
|
|
342
|
+
|
|
343
|
+
### Option 1: Using `name` (simple)
|
|
344
|
+
|
|
345
|
+
Pass a single `name` field. The SDK automatically splits it into `firstName` and `lastName` before sending to the server.
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
<ParlrChat
|
|
349
|
+
user={{
|
|
350
|
+
email: 'alice.martin@acme.com',
|
|
351
|
+
name: 'Alice Martin', // Automatically split: firstName="Alice", lastName="Martin"
|
|
352
|
+
}}
|
|
353
|
+
/>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Splitting rules:**
|
|
357
|
+
- `"Alice Martin"` → `firstName: "Alice"`, `lastName: "Martin"`
|
|
358
|
+
- `"Alice"` → `firstName: "Alice"` (no lastName)
|
|
359
|
+
- `"Alice Marie Martin"` → `firstName: "Alice"`, `lastName: "Marie Martin"`
|
|
360
|
+
- `" Alice Martin "` → `firstName: "Alice"`, `lastName: "Martin"` (trimmed)
|
|
361
|
+
|
|
362
|
+
### Option 2: Using `firstName` / `lastName` (explicit)
|
|
363
|
+
|
|
364
|
+
For precise control, pass `firstName` and `lastName` directly. These take priority over `name`.
|
|
365
|
+
|
|
366
|
+
```tsx
|
|
367
|
+
<ParlrChat
|
|
368
|
+
user={{
|
|
369
|
+
email: 'alice.martin@acme.com',
|
|
370
|
+
firstName: 'Alice',
|
|
371
|
+
lastName: 'Martin',
|
|
372
|
+
}}
|
|
373
|
+
/>
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
> **Important:** If neither `name`, `firstName`, nor `lastName` are provided, the contact name in your Parlr dashboard will fall back to the email prefix (e.g., `alice.martin@acme.com` → `alice.martin`).
|
|
377
|
+
|
|
378
|
+
### Full `ParlrUser` interface
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
interface ParlrUser {
|
|
382
|
+
email?: string; // Contact email
|
|
383
|
+
name?: string; // Full name (auto-split into firstName/lastName)
|
|
384
|
+
firstName?: string; // First name (takes priority over name)
|
|
385
|
+
lastName?: string; // Last name (takes priority over name)
|
|
386
|
+
externalId?: string; // Your internal user ID
|
|
387
|
+
phone?: string; // Phone number (E.164 format recommended)
|
|
388
|
+
company?: string; // Company name
|
|
389
|
+
customAttributes?: Record<string, unknown>; // Custom key-value pairs visible in the dashboard
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Custom attributes
|
|
394
|
+
|
|
395
|
+
Custom attributes appear in the **Contact Details** panel of your Parlr dashboard:
|
|
396
|
+
|
|
397
|
+
```tsx
|
|
398
|
+
await identify({
|
|
399
|
+
email: 'alice@acme.com',
|
|
400
|
+
firstName: 'Alice',
|
|
401
|
+
lastName: 'Martin',
|
|
402
|
+
company: 'Acme Inc',
|
|
403
|
+
customAttributes: {
|
|
404
|
+
plan: 'enterprise',
|
|
405
|
+
mrr: 2990,
|
|
406
|
+
signupDate: '2025-06-15',
|
|
407
|
+
accountManager: 'Bob',
|
|
408
|
+
},
|
|
409
|
+
});
|
|
309
410
|
```
|
|
310
411
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## Device Metadata
|
|
415
|
+
|
|
416
|
+
The SDK automatically collects and sends device metadata when a session is created. No configuration needed.
|
|
417
|
+
|
|
418
|
+
| Data | Example | Dashboard panel |
|
|
419
|
+
|---|---|---|
|
|
420
|
+
| Platform | `iOS`, `Android` | Visitor Device |
|
|
421
|
+
| OS version | `18.2`, `35` (Android API) | Visitor Device |
|
|
422
|
+
| Screen resolution | `430x932` | Visitor Device |
|
|
423
|
+
| Locale | `fr-FR` | Location |
|
|
424
|
+
| Timezone | `Europe/Paris` | Location |
|
|
425
|
+
| SDK version | `ParlrSDK/1.0` | User-Agent |
|
|
426
|
+
|
|
427
|
+
This data appears in the **Visitor Device** and **Location** sections of each contact's profile in the Parlr dashboard.
|
|
316
428
|
|
|
317
429
|
---
|
|
318
430
|
|
|
319
431
|
## Theming
|
|
320
432
|
|
|
321
|
-
The SDK automatically detects your system's dark/light mode. You can override any value
|
|
433
|
+
The SDK automatically detects your system's dark/light mode preference. You can override any theme value.
|
|
322
434
|
|
|
323
|
-
###
|
|
435
|
+
### Brand color only (most common)
|
|
324
436
|
|
|
325
437
|
```tsx
|
|
326
438
|
<ParlrProvider
|
|
@@ -360,12 +472,12 @@ The SDK automatically detects your system's dark/light mode. You can override an
|
|
|
360
472
|
>
|
|
361
473
|
```
|
|
362
474
|
|
|
363
|
-
### Programmatic access
|
|
475
|
+
### Programmatic theme access
|
|
364
476
|
|
|
365
477
|
```tsx
|
|
366
478
|
import { useParlr, defaultLightTheme, defaultDarkTheme, mergeTheme } from '@parlr/react-native';
|
|
367
479
|
|
|
368
|
-
// Access resolved theme in
|
|
480
|
+
// Access resolved theme in any component
|
|
369
481
|
const { theme } = useParlr();
|
|
370
482
|
<View style={{ backgroundColor: theme.colors.background }} />
|
|
371
483
|
|
|
@@ -379,22 +491,22 @@ const custom = mergeTheme(defaultDarkTheme, { colors: { primary: '#FF6B00' } });
|
|
|
379
491
|
```typescript
|
|
380
492
|
interface ParlrTheme {
|
|
381
493
|
colors: {
|
|
382
|
-
primary: string; // Accent color
|
|
383
|
-
primaryText: string; // Text on primary
|
|
494
|
+
primary: string; // Accent / brand color
|
|
495
|
+
primaryText: string; // Text on primary color
|
|
384
496
|
background: string; // Screen background
|
|
385
|
-
surface: string; // Card/input background
|
|
386
|
-
surfaceDark: string; // Darker surface (avatars)
|
|
387
|
-
text: string; // Primary text
|
|
497
|
+
surface: string; // Card / input background
|
|
498
|
+
surfaceDark: string; // Darker surface (avatars, headers)
|
|
499
|
+
text: string; // Primary text color
|
|
388
500
|
textSecondary: string; // Secondary text, timestamps
|
|
389
501
|
border: string; // Borders, dividers
|
|
390
|
-
success: string; // Online indicator
|
|
391
|
-
error: string; // Error states
|
|
392
|
-
agentBubble: string; // Agent bubble background
|
|
502
|
+
success: string; // Online indicator, success states
|
|
503
|
+
error: string; // Error states, failed messages
|
|
504
|
+
agentBubble: string; // Agent message bubble background
|
|
393
505
|
agentBubbleDark: string; // Reserved
|
|
394
|
-
agentText: string; // Agent
|
|
506
|
+
agentText: string; // Agent message text color
|
|
395
507
|
agentTextDark: string; // Reserved
|
|
396
|
-
contactBubble: string; // Contact bubble background
|
|
397
|
-
contactText: string; // Contact
|
|
508
|
+
contactBubble: string; // Contact message bubble background
|
|
509
|
+
contactText: string; // Contact message text color
|
|
398
510
|
};
|
|
399
511
|
borderRadius: {
|
|
400
512
|
bubble: number; // Message bubbles (default: 16)
|
|
@@ -427,23 +539,28 @@ The SDK exports a typed error hierarchy for precise error handling:
|
|
|
427
539
|
|
|
428
540
|
```tsx
|
|
429
541
|
import {
|
|
430
|
-
ParlrError, // Base class
|
|
431
|
-
ParlrNetworkError, // HTTP errors (
|
|
432
|
-
ParlrAuthError, //
|
|
433
|
-
ParlrValidationError, //
|
|
434
|
-
ParlrConnectionError, // WebSocket errors (
|
|
542
|
+
ParlrError, // Base class for all SDK errors
|
|
543
|
+
ParlrNetworkError, // HTTP errors (includes statusCode property)
|
|
544
|
+
ParlrAuthError, // 401/403 — expired or invalid session
|
|
545
|
+
ParlrValidationError, // Malformed server response (includes field property)
|
|
546
|
+
ParlrConnectionError, // WebSocket errors (includes code, reason properties)
|
|
435
547
|
} from '@parlr/react-native';
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Example: global error monitoring**
|
|
436
551
|
|
|
552
|
+
```tsx
|
|
437
553
|
<ParlrProvider
|
|
438
554
|
workspaceId="your-workspace-id"
|
|
439
555
|
onError={(error) => {
|
|
440
556
|
if (error instanceof ParlrAuthError) {
|
|
441
|
-
// Session expired — SDK auto-refreshes
|
|
557
|
+
// Session expired — the SDK auto-refreshes, no action needed
|
|
442
558
|
} else if (error instanceof ParlrNetworkError) {
|
|
443
|
-
console.warn(`HTTP ${error.statusCode}`);
|
|
559
|
+
console.warn(`HTTP error: ${error.statusCode}`);
|
|
444
560
|
} else if (error instanceof ParlrConnectionError) {
|
|
445
|
-
console.warn(`WebSocket closed: ${error.reason}`);
|
|
561
|
+
console.warn(`WebSocket closed: ${error.code} ${error.reason}`);
|
|
446
562
|
}
|
|
563
|
+
// Send to your error tracking service
|
|
447
564
|
Sentry.captureException(error);
|
|
448
565
|
}}
|
|
449
566
|
>
|
|
@@ -453,7 +570,7 @@ import {
|
|
|
453
570
|
|
|
454
571
|
## Offline Support
|
|
455
572
|
|
|
456
|
-
|
|
573
|
+
Messages sent while offline are queued locally and automatically retried when connectivity returns.
|
|
457
574
|
|
|
458
575
|
```tsx
|
|
459
576
|
import {
|
|
@@ -463,15 +580,23 @@ import {
|
|
|
463
580
|
flushQueue,
|
|
464
581
|
} from '@parlr/react-native';
|
|
465
582
|
|
|
466
|
-
//
|
|
467
|
-
queueMessage({
|
|
583
|
+
// Manually queue a message
|
|
584
|
+
queueMessage({
|
|
585
|
+
conversationId: 'conv_123',
|
|
586
|
+
content: 'Hello',
|
|
587
|
+
clientId: 'uuid-v4',
|
|
588
|
+
timestamp: Date.now(),
|
|
589
|
+
});
|
|
468
590
|
|
|
469
|
-
//
|
|
591
|
+
// Inspect the queue
|
|
470
592
|
const queued = await getQueuedMessages();
|
|
593
|
+
console.log(`${queued.length} messages pending`);
|
|
594
|
+
|
|
595
|
+
// Flush (send all queued messages)
|
|
471
596
|
await flushQueue(api);
|
|
472
597
|
```
|
|
473
598
|
|
|
474
|
-
Uses AsyncStorage when available, falls back to in-memory storage.
|
|
599
|
+
Uses `AsyncStorage` when available, falls back to in-memory storage.
|
|
475
600
|
|
|
476
601
|
---
|
|
477
602
|
|
|
@@ -482,10 +607,10 @@ Register device tokens for FCM (Android) or APNs (iOS) push notifications:
|
|
|
482
607
|
```tsx
|
|
483
608
|
import { registerPushToken, unregisterPushToken } from '@parlr/react-native';
|
|
484
609
|
|
|
485
|
-
// After obtaining the device token from expo-notifications or react-native-
|
|
486
|
-
await registerPushToken(api, deviceToken, 'ios');
|
|
610
|
+
// After obtaining the device token from expo-notifications or @react-native-firebase/messaging
|
|
611
|
+
await registerPushToken(api, deviceToken, 'ios'); // or 'android'
|
|
487
612
|
|
|
488
|
-
// On logout
|
|
613
|
+
// On logout or when the user disables notifications
|
|
489
614
|
await unregisterPushToken(api, deviceToken);
|
|
490
615
|
```
|
|
491
616
|
|
|
@@ -493,16 +618,28 @@ await unregisterPushToken(api, deviceToken);
|
|
|
493
618
|
|
|
494
619
|
## Identity Verification (HMAC)
|
|
495
620
|
|
|
496
|
-
For production apps, use HMAC verification to prevent contact impersonation.
|
|
621
|
+
For production apps, use HMAC verification to prevent contact impersonation.
|
|
622
|
+
|
|
623
|
+
**1. Generate the token server-side** using your workspace secret:
|
|
624
|
+
|
|
625
|
+
```javascript
|
|
626
|
+
// Node.js example
|
|
627
|
+
const crypto = require('crypto');
|
|
628
|
+
const hmac = crypto.createHmac('sha256', WORKSPACE_SECRET);
|
|
629
|
+
hmac.update(user.email);
|
|
630
|
+
const identityToken = hmac.digest('hex');
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**2. Pass it to the provider:**
|
|
497
634
|
|
|
498
635
|
```tsx
|
|
499
636
|
<ParlrProvider
|
|
500
637
|
workspaceId="your-workspace-id"
|
|
501
|
-
identityToken={
|
|
638
|
+
identityToken={identityTokenFromYourBackend}
|
|
502
639
|
>
|
|
503
640
|
```
|
|
504
641
|
|
|
505
|
-
The token is sent as `X-Identity-Token` on every
|
|
642
|
+
The token is sent as `X-Identity-Token` on every request. The Parlr server validates it against your workspace secret before accepting the identification.
|
|
506
643
|
|
|
507
644
|
---
|
|
508
645
|
|
|
@@ -515,17 +652,22 @@ The token is sent as `X-Identity-Token` on every identification request.
|
|
|
515
652
|
|
|
516
653
|
```typescript
|
|
517
654
|
interface ParlrUser {
|
|
518
|
-
email?: string;
|
|
519
|
-
name?: string;
|
|
520
|
-
firstName?: string;
|
|
521
|
-
lastName?: string;
|
|
522
|
-
externalId?: string;
|
|
523
|
-
phone?: string;
|
|
524
|
-
company?: string;
|
|
525
|
-
customAttributes?: Record<string, unknown>;
|
|
655
|
+
email?: string; // Contact email address
|
|
656
|
+
name?: string; // Full name (auto-split into firstName/lastName)
|
|
657
|
+
firstName?: string; // First name (takes priority over name)
|
|
658
|
+
lastName?: string; // Last name (takes priority over name)
|
|
659
|
+
externalId?: string; // Your internal user ID
|
|
660
|
+
phone?: string; // Phone number
|
|
661
|
+
company?: string; // Company name
|
|
662
|
+
customAttributes?: Record<string, unknown>; // Custom key-value pairs
|
|
526
663
|
}
|
|
527
664
|
```
|
|
528
665
|
|
|
666
|
+
**Name resolution order:**
|
|
667
|
+
1. `firstName` / `lastName` if provided → used directly
|
|
668
|
+
2. `name` if provided → auto-split on whitespace (`"Alice Martin"` → `firstName: "Alice"`, `lastName: "Martin"`)
|
|
669
|
+
3. Neither → dashboard shows email prefix as fallback
|
|
670
|
+
|
|
529
671
|
</details>
|
|
530
672
|
|
|
531
673
|
<details>
|
|
@@ -533,10 +675,10 @@ interface ParlrUser {
|
|
|
533
675
|
|
|
534
676
|
```typescript
|
|
535
677
|
interface Session {
|
|
536
|
-
token: string; // JWT token
|
|
537
|
-
contactId: string; //
|
|
678
|
+
token: string; // JWT session token
|
|
679
|
+
contactId: string; // Unique contact ID
|
|
538
680
|
workspaceId: string; // Workspace ID
|
|
539
|
-
expiresAt: string; // ISO 8601 expiration
|
|
681
|
+
expiresAt: string; // ISO 8601 expiration timestamp
|
|
540
682
|
}
|
|
541
683
|
```
|
|
542
684
|
|
|
@@ -550,9 +692,13 @@ interface Conversation {
|
|
|
550
692
|
id: string;
|
|
551
693
|
status: 'open' | 'resolved' | 'pending' | 'closed';
|
|
552
694
|
subject: string | null;
|
|
553
|
-
lastMessageAt: string | null;
|
|
695
|
+
lastMessageAt: string | null; // ISO 8601
|
|
554
696
|
unreadCount: number;
|
|
555
|
-
assignee?: {
|
|
697
|
+
assignee?: {
|
|
698
|
+
id: string;
|
|
699
|
+
name: string;
|
|
700
|
+
avatarUrl?: string;
|
|
701
|
+
} | null;
|
|
556
702
|
}
|
|
557
703
|
```
|
|
558
704
|
|
|
@@ -569,8 +715,8 @@ interface Message {
|
|
|
569
715
|
senderName?: string;
|
|
570
716
|
senderAvatarUrl?: string;
|
|
571
717
|
content: string;
|
|
572
|
-
createdAt: string;
|
|
573
|
-
clientId?: string;
|
|
718
|
+
createdAt: string; // ISO 8601
|
|
719
|
+
clientId?: string; // For optimistic deduplication
|
|
574
720
|
status?: 'sending' | 'sent' | 'failed' | 'read';
|
|
575
721
|
attachments?: Attachment[];
|
|
576
722
|
contentType?: 'text' | 'image' | 'file' | 'rich';
|
|
@@ -586,10 +732,10 @@ interface Message {
|
|
|
586
732
|
```typescript
|
|
587
733
|
interface Attachment {
|
|
588
734
|
id: string;
|
|
589
|
-
name: string;
|
|
590
|
-
url: string;
|
|
591
|
-
contentType: string;
|
|
592
|
-
size: number;
|
|
735
|
+
name: string; // Original filename
|
|
736
|
+
url: string; // Download URL
|
|
737
|
+
contentType: string; // MIME type (e.g., "image/png")
|
|
738
|
+
size: number; // Size in bytes
|
|
593
739
|
}
|
|
594
740
|
```
|
|
595
741
|
|
|
@@ -624,7 +770,7 @@ interface RichAction {
|
|
|
624
770
|
</details>
|
|
625
771
|
|
|
626
772
|
<details>
|
|
627
|
-
<summary><strong>WebSocket
|
|
773
|
+
<summary><strong>WebSocket events</strong></summary>
|
|
628
774
|
|
|
629
775
|
```typescript
|
|
630
776
|
interface WsEventMap {
|
|
@@ -641,14 +787,14 @@ interface WsEventMap {
|
|
|
641
787
|
}
|
|
642
788
|
```
|
|
643
789
|
|
|
644
|
-
**
|
|
790
|
+
**Connection behavior:**
|
|
645
791
|
- Auto-reconnect with exponential backoff (1s → 30s max)
|
|
646
|
-
- Keep-alive ping every 25s, timeout at 50s
|
|
647
|
-
- Clean listener teardown on unmount
|
|
792
|
+
- Keep-alive ping every 25s, server timeout at 50s
|
|
793
|
+
- Clean listener teardown on component unmount
|
|
648
794
|
|
|
649
795
|
</details>
|
|
650
796
|
|
|
651
|
-
### All
|
|
797
|
+
### All exports
|
|
652
798
|
|
|
653
799
|
```typescript
|
|
654
800
|
// Components
|
|
@@ -754,7 +900,11 @@ import { ParlrChat } from '@parlr/react-native';
|
|
|
754
900
|
function SupportScreen({ navigation }) {
|
|
755
901
|
return (
|
|
756
902
|
<ParlrChat
|
|
757
|
-
user={{
|
|
903
|
+
user={{
|
|
904
|
+
email: 'alice@acme.com',
|
|
905
|
+
firstName: 'Alice',
|
|
906
|
+
lastName: 'Martin',
|
|
907
|
+
}}
|
|
758
908
|
onBack={() => navigation.goBack()}
|
|
759
909
|
headerTitle="Help & Support"
|
|
760
910
|
showPreChatForm={true}
|
|
@@ -763,7 +913,41 @@ function SupportScreen({ navigation }) {
|
|
|
763
913
|
}
|
|
764
914
|
```
|
|
765
915
|
|
|
766
|
-
###
|
|
916
|
+
### With Expo Router
|
|
917
|
+
|
|
918
|
+
```tsx
|
|
919
|
+
// app/_layout.tsx
|
|
920
|
+
import { ParlrProvider } from '@parlr/react-native';
|
|
921
|
+
import { Stack } from 'expo-router';
|
|
922
|
+
|
|
923
|
+
export default function Layout() {
|
|
924
|
+
return (
|
|
925
|
+
<ParlrProvider workspaceId="your-workspace-id" locale="fr">
|
|
926
|
+
<Stack />
|
|
927
|
+
</ParlrProvider>
|
|
928
|
+
);
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
// app/support.tsx
|
|
932
|
+
import { ParlrChat } from '@parlr/react-native';
|
|
933
|
+
import { useRouter } from 'expo-router';
|
|
934
|
+
|
|
935
|
+
export default function SupportScreen() {
|
|
936
|
+
const router = useRouter();
|
|
937
|
+
|
|
938
|
+
return (
|
|
939
|
+
<ParlrChat
|
|
940
|
+
user={{
|
|
941
|
+
email: 'alice@acme.com',
|
|
942
|
+
name: 'Alice Martin',
|
|
943
|
+
}}
|
|
944
|
+
onBack={() => router.back()}
|
|
945
|
+
/>
|
|
946
|
+
);
|
|
947
|
+
}
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
### Conversation list + detail
|
|
767
951
|
|
|
768
952
|
```tsx
|
|
769
953
|
import { ParlrConversationList, ParlrChat } from '@parlr/react-native';
|
|
@@ -794,6 +978,7 @@ function ChatScreen({ route, navigation }) {
|
|
|
794
978
|
```tsx
|
|
795
979
|
import { useChat, ChatBubble, TypingIndicator } from '@parlr/react-native';
|
|
796
980
|
import { FlatList, TextInput, TouchableOpacity, View, Text } from 'react-native';
|
|
981
|
+
import { useState } from 'react';
|
|
797
982
|
|
|
798
983
|
function CustomChat({ conversationId }) {
|
|
799
984
|
const [text, setText] = useState('');
|
|
@@ -821,10 +1006,10 @@ function CustomChat({ conversationId }) {
|
|
|
821
1006
|
<TextInput
|
|
822
1007
|
value={text}
|
|
823
1008
|
onChangeText={(t) => { setText(t); notifyTyping(true); }}
|
|
824
|
-
style={{ flex: 1 }}
|
|
1009
|
+
style={{ flex: 1, borderWidth: 1, borderRadius: 8, padding: 8 }}
|
|
825
1010
|
placeholder="Type a message..."
|
|
826
1011
|
/>
|
|
827
|
-
<TouchableOpacity onPress={handleSend}>
|
|
1012
|
+
<TouchableOpacity onPress={handleSend} style={{ padding: 8 }}>
|
|
828
1013
|
<Text>Send</Text>
|
|
829
1014
|
</TouchableOpacity>
|
|
830
1015
|
</View>
|
|
@@ -844,8 +1029,8 @@ Point the SDK to your own Parlr instance:
|
|
|
844
1029
|
```tsx
|
|
845
1030
|
<ParlrProvider
|
|
846
1031
|
workspaceId="your-workspace-id"
|
|
847
|
-
apiBaseUrl="https://your-
|
|
848
|
-
wsUrl="wss://your-
|
|
1032
|
+
apiBaseUrl="https://api.your-domain.com/api/v1/widget"
|
|
1033
|
+
wsUrl="wss://ws.your-domain.com/ws"
|
|
849
1034
|
>
|
|
850
1035
|
```
|
|
851
1036
|
|
|
@@ -855,7 +1040,11 @@ Point the SDK to your own Parlr instance:
|
|
|
855
1040
|
<ParlrProvider workspaceId="your-workspace-id" debug={true}>
|
|
856
1041
|
```
|
|
857
1042
|
|
|
858
|
-
Logs
|
|
1043
|
+
Logs to the console:
|
|
1044
|
+
- REST API calls and responses
|
|
1045
|
+
- WebSocket events (connect, disconnect, messages)
|
|
1046
|
+
- Session lifecycle (create, refresh, expire)
|
|
1047
|
+
- Retry attempts with backoff timing
|
|
859
1048
|
|
|
860
1049
|
---
|
|
861
1050
|
|
|
@@ -871,28 +1060,35 @@ Sign up at [app.parlr.chat](https://app.parlr.chat), create a workspace, and fin
|
|
|
871
1060
|
<details>
|
|
872
1061
|
<summary><strong>Does the SDK work with Expo?</strong></summary>
|
|
873
1062
|
|
|
874
|
-
Yes. The SDK works with both Expo managed and bare
|
|
1063
|
+
Yes. The SDK works with both Expo managed workflow and bare React Native. All optional dependencies (`expo-secure-store`, `expo-image-picker`, `expo-document-picker`) are standard Expo packages.
|
|
875
1064
|
|
|
876
1065
|
</details>
|
|
877
1066
|
|
|
878
1067
|
<details>
|
|
879
1068
|
<summary><strong>What happens when the device goes offline?</strong></summary>
|
|
880
1069
|
|
|
881
|
-
Messages are queued locally and automatically retried when connectivity returns. The WebSocket reconnects with exponential backoff.
|
|
1070
|
+
Messages are queued locally and automatically retried when connectivity returns. The WebSocket reconnects with exponential backoff (1s up to 30s). The UI continues to work normally — messages show with `sending` status until confirmed.
|
|
882
1071
|
|
|
883
1072
|
</details>
|
|
884
1073
|
|
|
885
1074
|
<details>
|
|
886
1075
|
<summary><strong>Can I use the SDK without any UI components?</strong></summary>
|
|
887
1076
|
|
|
888
|
-
Yes. Use `useParlr()` and `useChat()` hooks to build a completely custom UI. The SDK handles all networking, state management, and real-time
|
|
1077
|
+
Yes. Use `useParlr()` and `useChat()` hooks to build a completely custom UI. The SDK handles all networking, state management, and real-time events for you.
|
|
889
1078
|
|
|
890
1079
|
</details>
|
|
891
1080
|
|
|
892
1081
|
<details>
|
|
893
1082
|
<summary><strong>How does identity verification work?</strong></summary>
|
|
894
1083
|
|
|
895
|
-
Generate an HMAC token server-side using your workspace secret and the user's email. Pass it as `identityToken` to
|
|
1084
|
+
Generate an HMAC-SHA256 token server-side using your workspace secret and the user's email. Pass it as `identityToken` to `<ParlrProvider>`. The server validates the token before accepting the identification — this prevents visitors from impersonating other contacts.
|
|
1085
|
+
|
|
1086
|
+
</details>
|
|
1087
|
+
|
|
1088
|
+
<details>
|
|
1089
|
+
<summary><strong>Why does my dashboard show the email prefix instead of the full name?</strong></summary>
|
|
1090
|
+
|
|
1091
|
+
Make sure you're passing `firstName`/`lastName` (or `name`) in the `user` prop. If only `email` is provided, the dashboard falls back to displaying the email prefix (e.g., `alice` from `alice@acme.com`).
|
|
896
1092
|
|
|
897
1093
|
</details>
|
|
898
1094
|
|
|
@@ -900,6 +1096,14 @@ Generate an HMAC token server-side using your workspace secret and the user's em
|
|
|
900
1096
|
|
|
901
1097
|
## Changelog
|
|
902
1098
|
|
|
1099
|
+
### 0.1.3
|
|
1100
|
+
|
|
1101
|
+
- **Name auto-split** — when passing `name` (e.g., `"Alice Martin"`) without `firstName`/`lastName`, the SDK now automatically splits it into `firstName` and `lastName` before sending to the server. This fixes an issue where the Parlr dashboard would show only the email prefix instead of the full name.
|
|
1102
|
+
|
|
1103
|
+
### 0.1.2
|
|
1104
|
+
|
|
1105
|
+
- Documentation improvements and updated metadata.
|
|
1106
|
+
|
|
903
1107
|
### 0.1.1
|
|
904
1108
|
|
|
905
1109
|
- **Device metadata** — the SDK now automatically collects and sends device information (platform, OS version, screen resolution, locale, timezone) when creating a session. This data appears in the **Visitor Device** and **Location** panels of your Parlr dashboard.
|
|
@@ -907,14 +1111,14 @@ Generate an HMAC token server-side using your workspace secret and the user's em
|
|
|
907
1111
|
|
|
908
1112
|
### 0.1.0
|
|
909
1113
|
|
|
910
|
-
- Initial release with full chat UI, WebSocket
|
|
1114
|
+
- Initial release with full chat UI, WebSocket real-time messaging, theming system, hooks API, offline queue, push notifications, pre-chat forms, CSAT surveys, file attachments, rich messages, and TypeScript support.
|
|
911
1115
|
|
|
912
1116
|
---
|
|
913
1117
|
|
|
914
1118
|
## Support
|
|
915
1119
|
|
|
916
|
-
- Documentation
|
|
917
|
-
- Issues & feature requests
|
|
1120
|
+
- **Documentation:** [parlr.chat/docs/sdk/react-native](https://parlr.chat/docs/sdk/react-native)
|
|
1121
|
+
- **Issues & feature requests:** [support@parlr.chat](mailto:support@parlr.chat)
|
|
918
1122
|
|
|
919
1123
|
---
|
|
920
1124
|
|
package/lib/commonjs/core/api.js
CHANGED
|
@@ -202,7 +202,24 @@ function createApiClient(config, getToken) {
|
|
|
202
202
|
return validateSession(data);
|
|
203
203
|
},
|
|
204
204
|
async identify(user) {
|
|
205
|
-
|
|
205
|
+
const {
|
|
206
|
+
name,
|
|
207
|
+
...rest
|
|
208
|
+
} = user;
|
|
209
|
+
const payload = {
|
|
210
|
+
...rest
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
// Le backend attend firstName/lastName séparément.
|
|
214
|
+
// Si seul "name" est fourni, on le découpe automatiquement.
|
|
215
|
+
if (name && !rest.firstName && !rest.lastName) {
|
|
216
|
+
const parts = name.trim().split(/\s+/);
|
|
217
|
+
payload.firstName = parts[0];
|
|
218
|
+
if (parts.length > 1) {
|
|
219
|
+
payload.lastName = parts.slice(1).join(' ');
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
await http.post('/identify', payload);
|
|
206
223
|
},
|
|
207
224
|
async listConversations(page = 1) {
|
|
208
225
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_reactNative","_errors","e","__esModule","default","MAX_RETRIES","BASE_DELAY_MS","RETRYABLE_STATUS","Set","delay","ms","Promise","resolve","setTimeout","isRetryable","error","response","has","status","validateSession","data","ParlrValidationError","d","token","sessionToken","contactId","workspaceId","expiresAt","validateMessage","id","conversationId","senderType","content","contentType","senderName","undefined","senderAvatarUrl","createdAt","Date","toISOString","clientId","attachments","Array","isArray","validateConversation","subject","lastMessageAt","unreadCount","assignee","mapAxiosError","ParlrNetworkError","message","cause","ParlrAuthError","createApiClient","config","getToken","http","axios","create","baseURL","apiBaseUrl","timeout","headers","Accept","interceptors","request","use","req","set","identityToken","requestConfig","_retryCount","jitter","Math","random","backoff","pow","debug","console","log","round","collectDeviceMetadata","screen","Dimensions","get","osVersion","Platform","Version","String","userAgent","OS","browserInfo","deviceType","platform","screenResolution","width","height","locale","Intl","DateTimeFormat","resolvedOptions","timezone","timeZone","createSession","post","identify","user","listConversations","page","params","convs","map","meta","total","length","perPage","hasMore","createConversation","initialMessage","getMessages","encodeURIComponent","messages","sendMessage","sendTypingIndicator","isTyping","closeConversation","reopenConversation","uploadAttachment","formData","subscribePush","unsubscribePush","submitRating","score","comment","searchMessages","query","q"],"sourceRoot":"../../../src","sources":["core/api.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_axios","_interopRequireDefault","require","_reactNative","_errors","e","__esModule","default","MAX_RETRIES","BASE_DELAY_MS","RETRYABLE_STATUS","Set","delay","ms","Promise","resolve","setTimeout","isRetryable","error","response","has","status","validateSession","data","ParlrValidationError","d","token","sessionToken","contactId","workspaceId","expiresAt","validateMessage","id","conversationId","senderType","content","contentType","senderName","undefined","senderAvatarUrl","createdAt","Date","toISOString","clientId","attachments","Array","isArray","validateConversation","subject","lastMessageAt","unreadCount","assignee","mapAxiosError","ParlrNetworkError","message","cause","ParlrAuthError","createApiClient","config","getToken","http","axios","create","baseURL","apiBaseUrl","timeout","headers","Accept","interceptors","request","use","req","set","identityToken","requestConfig","_retryCount","jitter","Math","random","backoff","pow","debug","console","log","round","collectDeviceMetadata","screen","Dimensions","get","osVersion","Platform","Version","String","userAgent","OS","browserInfo","deviceType","platform","screenResolution","width","height","locale","Intl","DateTimeFormat","resolvedOptions","timezone","timeZone","createSession","post","identify","user","name","rest","payload","firstName","lastName","parts","trim","split","length","slice","join","listConversations","page","params","convs","map","meta","total","perPage","hasMore","createConversation","initialMessage","getMessages","encodeURIComponent","messages","sendMessage","sendTypingIndicator","isTyping","closeConversation","reopenConversation","uploadAttachment","formData","subscribePush","unsubscribePush","submitRating","score","comment","searchMessages","query","q"],"sourceRoot":"../../../src","sources":["core/api.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/core/api.js
CHANGED
|
@@ -197,7 +197,24 @@ export function createApiClient(config, getToken) {
|
|
|
197
197
|
return validateSession(data);
|
|
198
198
|
},
|
|
199
199
|
async identify(user) {
|
|
200
|
-
|
|
200
|
+
const {
|
|
201
|
+
name,
|
|
202
|
+
...rest
|
|
203
|
+
} = user;
|
|
204
|
+
const payload = {
|
|
205
|
+
...rest
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
// Le backend attend firstName/lastName séparément.
|
|
209
|
+
// Si seul "name" est fourni, on le découpe automatiquement.
|
|
210
|
+
if (name && !rest.firstName && !rest.lastName) {
|
|
211
|
+
const parts = name.trim().split(/\s+/);
|
|
212
|
+
payload.firstName = parts[0];
|
|
213
|
+
if (parts.length > 1) {
|
|
214
|
+
payload.lastName = parts.slice(1).join(' ');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
await http.post('/identify', payload);
|
|
201
218
|
},
|
|
202
219
|
async listConversations(page = 1) {
|
|
203
220
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","Platform","Dimensions","ParlrAuthError","ParlrNetworkError","ParlrValidationError","MAX_RETRIES","BASE_DELAY_MS","RETRYABLE_STATUS","Set","delay","ms","Promise","resolve","setTimeout","isRetryable","error","response","has","status","validateSession","data","d","token","sessionToken","contactId","workspaceId","expiresAt","validateMessage","id","conversationId","senderType","content","contentType","senderName","undefined","senderAvatarUrl","createdAt","Date","toISOString","clientId","attachments","Array","isArray","validateConversation","subject","lastMessageAt","unreadCount","assignee","mapAxiosError","message","cause","createApiClient","config","getToken","http","create","baseURL","apiBaseUrl","timeout","headers","Accept","interceptors","request","use","req","set","identityToken","requestConfig","_retryCount","jitter","Math","random","backoff","pow","debug","console","log","round","collectDeviceMetadata","screen","get","osVersion","Version","String","userAgent","OS","browserInfo","deviceType","platform","screenResolution","width","height","locale","Intl","DateTimeFormat","resolvedOptions","timezone","timeZone","createSession","post","identify","user","listConversations","page","params","convs","map","meta","total","length","perPage","hasMore","createConversation","initialMessage","getMessages","encodeURIComponent","messages","sendMessage","sendTypingIndicator","isTyping","closeConversation","reopenConversation","uploadAttachment","formData","subscribePush","unsubscribePush","submitRating","score","comment","searchMessages","query","q"],"sourceRoot":"../../../src","sources":["core/api.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["axios","Platform","Dimensions","ParlrAuthError","ParlrNetworkError","ParlrValidationError","MAX_RETRIES","BASE_DELAY_MS","RETRYABLE_STATUS","Set","delay","ms","Promise","resolve","setTimeout","isRetryable","error","response","has","status","validateSession","data","d","token","sessionToken","contactId","workspaceId","expiresAt","validateMessage","id","conversationId","senderType","content","contentType","senderName","undefined","senderAvatarUrl","createdAt","Date","toISOString","clientId","attachments","Array","isArray","validateConversation","subject","lastMessageAt","unreadCount","assignee","mapAxiosError","message","cause","createApiClient","config","getToken","http","create","baseURL","apiBaseUrl","timeout","headers","Accept","interceptors","request","use","req","set","identityToken","requestConfig","_retryCount","jitter","Math","random","backoff","pow","debug","console","log","round","collectDeviceMetadata","screen","get","osVersion","Version","String","userAgent","OS","browserInfo","deviceType","platform","screenResolution","width","height","locale","Intl","DateTimeFormat","resolvedOptions","timezone","timeZone","createSession","post","identify","user","name","rest","payload","firstName","lastName","parts","trim","split","length","slice","join","listConversations","page","params","convs","map","meta","total","perPage","hasMore","createConversation","initialMessage","getMessages","encodeURIComponent","messages","sendMessage","sendTypingIndicator","isTyping","closeConversation","reopenConversation","uploadAttachment","formData","subscribePush","unsubscribePush","submitRating","score","comment","searchMessages","query","q"],"sourceRoot":"../../../src","sources":["core/api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/core/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AA6IjB,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3E,mEAAmE;IACnE,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnE,yCAAyC;IACzC,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,oDAAoD;IACpD,mBAAmB,CACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE,oCAAoC;IACpC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElE,8CAA8C;IAC9C,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF,uCAAuC;IACvC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,2CAA2C;IAC3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,+CAA+C;IAC/C,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,yCAAyC;IACzC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/core/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AA6IjB,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3E,mEAAmE;IACnE,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnE,yCAAyC;IACzC,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,oDAAoD;IACpD,mBAAmB,CACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE,oCAAoC;IACpC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElE,8CAA8C;IAC9C,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF,uCAAuC;IACvC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,2CAA2C;IAC3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,+CAA+C;IAC/C,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,yCAAyC;IACzC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAC5B,cAAc,CA6NhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/core/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AA6IjB,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3E,mEAAmE;IACnE,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnE,yCAAyC;IACzC,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,oDAAoD;IACpD,mBAAmB,CACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE,oCAAoC;IACpC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElE,8CAA8C;IAC9C,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF,uCAAuC;IACvC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,2CAA2C;IAC3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,+CAA+C;IAC/C,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,yCAAyC;IACzC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/core/api.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,OAAO,EACR,MAAM,SAAS,CAAC;AA6IjB,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3E,mEAAmE;IACnE,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnE,yCAAyC;IACzC,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC,4CAA4C;IAC5C,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,oDAAoD;IACpD,mBAAmB,CACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,4BAA4B;IAC5B,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjE,oCAAoC;IACpC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElE,8CAA8C;IAC9C,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAElF,uCAAuC;IACvC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,2CAA2C;IAC3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,+CAA+C;IAC/C,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,yCAAyC;IACzC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAC5B,cAAc,CA6NhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parlr/react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Official Parlr live chat SDK for React Native",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -109,11 +109,13 @@
|
|
|
109
109
|
"node": ">=18.0.0"
|
|
110
110
|
},
|
|
111
111
|
"homepage": "https://parlr.chat/docs/sdk/react-native",
|
|
112
|
-
"bugs":
|
|
112
|
+
"bugs": {
|
|
113
|
+
"email": "support@parlr.chat",
|
|
114
|
+
"url": "https://parlr.chat/docs/sdk/react-native"
|
|
115
|
+
},
|
|
113
116
|
"repository": {
|
|
114
117
|
"type": "git",
|
|
115
|
-
"url": "https://
|
|
116
|
-
"directory": "parlr-react-native"
|
|
118
|
+
"url": "https://parlr.chat"
|
|
117
119
|
},
|
|
118
120
|
"license": "MIT",
|
|
119
121
|
"publishConfig": {
|
package/src/core/api.ts
CHANGED
|
@@ -319,7 +319,20 @@ export function createApiClient(
|
|
|
319
319
|
},
|
|
320
320
|
|
|
321
321
|
async identify(user: ParlrUser): Promise<void> {
|
|
322
|
-
|
|
322
|
+
const { name, ...rest } = user;
|
|
323
|
+
const payload: Record<string, unknown> = { ...rest };
|
|
324
|
+
|
|
325
|
+
// Le backend attend firstName/lastName séparément.
|
|
326
|
+
// Si seul "name" est fourni, on le découpe automatiquement.
|
|
327
|
+
if (name && !rest.firstName && !rest.lastName) {
|
|
328
|
+
const parts = name.trim().split(/\s+/);
|
|
329
|
+
payload.firstName = parts[0];
|
|
330
|
+
if (parts.length > 1) {
|
|
331
|
+
payload.lastName = parts.slice(1).join(' ');
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
await http.post('/identify', payload);
|
|
323
336
|
},
|
|
324
337
|
|
|
325
338
|
async listConversations(
|