@parlr/react-native 0.1.1 → 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 +389 -180
- 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,13 +6,13 @@
|
|
|
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">
|
|
13
13
|
<a href="https://www.npmjs.com/package/@parlr/react-native"><img src="https://img.shields.io/npm/v/@parlr/react-native.svg?style=flat-square&color=6366f1" alt="npm version" /></a>
|
|
14
14
|
<a href="https://www.npmjs.com/package/@parlr/react-native"><img src="https://img.shields.io/npm/dm/@parlr/react-native.svg?style=flat-square&color=6366f1" alt="npm downloads" /></a>
|
|
15
|
-
<a href="https://
|
|
15
|
+
<a href="https://www.npmjs.com/package/@parlr/react-native"><img src="https://img.shields.io/npm/l/@parlr/react-native.svg?style=flat-square" alt="license" /></a>
|
|
16
16
|
<a href="https://parlr.chat/docs/sdk/react-native"><img src="https://img.shields.io/badge/docs-parlr.chat-6366f1?style=flat-square" alt="docs" /></a>
|
|
17
17
|
</p>
|
|
18
18
|
|
|
@@ -20,31 +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
|
-
|
|
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.
|
|
48
54
|
|
|
49
55
|
---
|
|
50
56
|
|
|
@@ -52,13 +58,11 @@ Parlr is a modern B2B live chat platform. This SDK gives your React Native app:
|
|
|
52
58
|
|
|
53
59
|
```bash
|
|
54
60
|
npm install @parlr/react-native
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```bash
|
|
61
|
+
# or
|
|
58
62
|
yarn add @parlr/react-native
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
###
|
|
65
|
+
### Required peer dependency
|
|
62
66
|
|
|
63
67
|
```bash
|
|
64
68
|
npm install react-native-reanimated
|
|
@@ -67,27 +71,25 @@ npm install react-native-reanimated
|
|
|
67
71
|
### Optional dependencies
|
|
68
72
|
|
|
69
73
|
```bash
|
|
70
|
-
#
|
|
74
|
+
# Secure session persistence (recommended)
|
|
71
75
|
npm install expo-secure-store
|
|
72
76
|
|
|
73
|
-
#
|
|
77
|
+
# File & image attachments
|
|
74
78
|
npm install expo-image-picker expo-document-picker
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
> Without `expo-secure-store`, sessions are stored in memory
|
|
78
|
-
|
|
79
|
-
### 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.
|
|
80
82
|
|
|
81
|
-
|
|
82
|
-
|---|---|
|
|
83
|
-
| `react` | 18.0.0 |
|
|
84
|
-
| `react-native` | 0.72.0 |
|
|
85
|
-
| `react-native-reanimated` | 3.0.0 |
|
|
86
|
-
| `expo-secure-store` | 13.0.0 *(optional)* |
|
|
87
|
-
| `expo-image-picker` | 15.0.0 *(optional)* |
|
|
88
|
-
| `expo-document-picker` | 12.0.0 *(optional)* |
|
|
83
|
+
### Compatibility matrix
|
|
89
84
|
|
|
90
|
-
|
|
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 |
|
|
91
93
|
|
|
92
94
|
---
|
|
93
95
|
|
|
@@ -107,7 +109,7 @@ export default function App() {
|
|
|
107
109
|
}
|
|
108
110
|
```
|
|
109
111
|
|
|
110
|
-
### 2.
|
|
112
|
+
### 2. Add the chat screen
|
|
111
113
|
|
|
112
114
|
```tsx
|
|
113
115
|
import { ParlrChat } from '@parlr/react-native';
|
|
@@ -115,7 +117,11 @@ import { ParlrChat } from '@parlr/react-native';
|
|
|
115
117
|
function SupportScreen({ navigation }) {
|
|
116
118
|
return (
|
|
117
119
|
<ParlrChat
|
|
118
|
-
user={{
|
|
120
|
+
user={{
|
|
121
|
+
email: 'alice@acme.com',
|
|
122
|
+
firstName: 'Alice',
|
|
123
|
+
lastName: 'Martin',
|
|
124
|
+
}}
|
|
119
125
|
onBack={() => navigation.goBack()}
|
|
120
126
|
/>
|
|
121
127
|
);
|
|
@@ -147,7 +153,7 @@ function SupportButton() {
|
|
|
147
153
|
|
|
148
154
|
### `<ParlrProvider>`
|
|
149
155
|
|
|
150
|
-
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).
|
|
151
157
|
|
|
152
158
|
```tsx
|
|
153
159
|
<ParlrProvider
|
|
@@ -163,27 +169,31 @@ Root wrapper that initializes the SDK. Place it near the top of your component t
|
|
|
163
169
|
|
|
164
170
|
| Prop | Type | Default | Description |
|
|
165
171
|
|---|---|---|---|
|
|
166
|
-
| `workspaceId` | `string` | *required* | Your Parlr workspace ID |
|
|
172
|
+
| `workspaceId` | `string` | *required* | Your Parlr workspace ID (find it in **Settings > Channels > Mobile SDK**) |
|
|
167
173
|
| `apiBaseUrl` | `string` | `https://api.parlr.chat/api/v1/widget` | REST API base URL |
|
|
168
174
|
| `wsUrl` | `string` | `wss://ws.parlr.chat/ws` | WebSocket endpoint |
|
|
169
|
-
| `locale` | `string` | `"fr"` | BCP-47 locale (`"fr"`
|
|
170
|
-
| `debug` | `boolean` | `false` | Enable verbose console logging |
|
|
171
|
-
| `theme` | `Partial<ParlrTheme>` | auto | Theme overrides (see [Theming](#theming)) |
|
|
172
|
-
| `identityToken` | `string` | — | HMAC token for identity verification |
|
|
173
|
-
| `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 |
|
|
174
180
|
|
|
175
181
|
---
|
|
176
182
|
|
|
177
183
|
### `<ParlrChat>`
|
|
178
184
|
|
|
179
|
-
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.
|
|
180
186
|
|
|
181
187
|
```tsx
|
|
182
188
|
<ParlrChat
|
|
183
|
-
user={{
|
|
184
|
-
|
|
189
|
+
user={{
|
|
190
|
+
email: 'alice@acme.com',
|
|
191
|
+
firstName: 'Alice',
|
|
192
|
+
lastName: 'Martin',
|
|
193
|
+
company: 'Acme Inc',
|
|
194
|
+
}}
|
|
185
195
|
onBack={() => navigation.goBack()}
|
|
186
|
-
headerTitle="Support"
|
|
196
|
+
headerTitle="Help & Support"
|
|
187
197
|
showPreChatForm={true}
|
|
188
198
|
preChatFields={['name', 'email']}
|
|
189
199
|
showSatisfactionSurvey={true}
|
|
@@ -192,25 +202,25 @@ Full-featured chat screen. Handles everything: session, WebSocket, messages, inp
|
|
|
192
202
|
|
|
193
203
|
| Prop | Type | Default | Description |
|
|
194
204
|
|---|---|---|---|
|
|
195
|
-
| `user` | `ParlrUser` | — | Identify the user on mount |
|
|
196
|
-
| `conversationId` | `string` | — | Resume an existing conversation |
|
|
197
|
-
| `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) |
|
|
198
208
|
| `headerTitle` | `string` | `"Support"` | Header bar title |
|
|
199
|
-
| `placeholder` | `string` | `"Write a message..."` | Input placeholder |
|
|
209
|
+
| `placeholder` | `string` | `"Write a message..."` | Input placeholder text |
|
|
200
210
|
| `accentColor` | `string` | `theme.colors.primary` | Accent color override |
|
|
201
|
-
| `showHeader` | `boolean` | `true` | Show/hide header bar |
|
|
202
|
-
| `showPreChatForm` | `boolean` | `false` | Collect user info before first message |
|
|
203
|
-
| `preChatFields` | `Array<'name' \| 'email' \| 'phone'>` | `['name', 'email']` |
|
|
204
|
-
| `showSatisfactionSurvey` | `boolean` | `true` | Show CSAT after conversation closes |
|
|
205
|
-
| `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 |
|
|
206
216
|
|
|
207
|
-
**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.
|
|
208
218
|
|
|
209
219
|
---
|
|
210
220
|
|
|
211
221
|
### `<ParlrConversationList>`
|
|
212
222
|
|
|
213
|
-
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.
|
|
214
224
|
|
|
215
225
|
```tsx
|
|
216
226
|
<ParlrConversationList
|
|
@@ -222,10 +232,10 @@ Displays a list of conversations with last message preview, unread badges, and s
|
|
|
222
232
|
|
|
223
233
|
| Prop | Type | Default | Description |
|
|
224
234
|
|---|---|---|---|
|
|
225
|
-
| `onSelectConversation` | `(id: string) => void` | *required* |
|
|
235
|
+
| `onSelectConversation` | `(id: string) => void` | *required* | Callback when tapping a conversation |
|
|
226
236
|
| `onNewConversation` | `() => void` | — | "New conversation" button handler |
|
|
227
237
|
| `headerTitle` | `string` | `"Conversations"` | Header title |
|
|
228
|
-
| `statusFilter` | `'open' \| 'closed' \| 'pending'` | — | Filter by status |
|
|
238
|
+
| `statusFilter` | `'open' \| 'closed' \| 'pending'` | — | Filter conversations by status |
|
|
229
239
|
| `showHeader` | `boolean` | `true` | Show/hide header |
|
|
230
240
|
| `accentColor` | `string` | `"#6366f1"` | Accent color |
|
|
231
241
|
|
|
@@ -233,21 +243,19 @@ Displays a list of conversations with last message preview, unread badges, and s
|
|
|
233
243
|
|
|
234
244
|
### Lower-level components
|
|
235
245
|
|
|
236
|
-
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:
|
|
237
247
|
|
|
238
248
|
| Component | Description |
|
|
239
249
|
|---|---|
|
|
240
250
|
| `<ChatBubble message={msg} />` | Single message bubble (agent left, contact right) |
|
|
241
251
|
| `<TypingIndicator />` | Animated three-dot typing indicator |
|
|
242
|
-
| `<EmptyState />` | Welcome screen when no messages exist |
|
|
243
|
-
| `<PreChatForm onSubmit={fn} />` | Pre-chat information form |
|
|
244
|
-
| `<SatisfactionSurvey onSubmit={fn} />` | CSAT 1
|
|
245
|
-
| `<AttachmentPicker onFilePicked={fn} />` | Photo/camera/file picker |
|
|
246
|
-
| `<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 |
|
|
247
257
|
| `<RichMessage content={rich} />` | Cards, carousels, quick replies |
|
|
248
258
|
|
|
249
|
-
See the [API Reference](#api-reference) for full prop tables.
|
|
250
|
-
|
|
251
259
|
---
|
|
252
260
|
|
|
253
261
|
## Hooks
|
|
@@ -258,20 +266,24 @@ Access SDK state from any component inside `<ParlrProvider>`.
|
|
|
258
266
|
|
|
259
267
|
```tsx
|
|
260
268
|
const {
|
|
261
|
-
isReady, // SDK initialized
|
|
262
|
-
isConnected, // WebSocket connected
|
|
263
|
-
session, // Current
|
|
264
|
-
conversations, // All conversations
|
|
265
|
-
unreadCount, // Total unread messages
|
|
266
|
-
identify, // Identify or update user
|
|
267
|
-
refreshConversations, // Force
|
|
268
|
-
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)
|
|
269
277
|
} = useParlr();
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Identifying a user:**
|
|
270
281
|
|
|
271
|
-
|
|
282
|
+
```tsx
|
|
272
283
|
await identify({
|
|
273
284
|
email: 'alice@acme.com',
|
|
274
|
-
|
|
285
|
+
firstName: 'Alice',
|
|
286
|
+
lastName: 'Martin',
|
|
275
287
|
company: 'Acme Inc',
|
|
276
288
|
customAttributes: { plan: 'pro', mrr: 299 },
|
|
277
289
|
});
|
|
@@ -285,41 +297,142 @@ Manage a single conversation with real-time updates.
|
|
|
285
297
|
|
|
286
298
|
```tsx
|
|
287
299
|
const {
|
|
288
|
-
messages, //
|
|
289
|
-
isLoading, //
|
|
290
|
-
hasError, //
|
|
291
|
-
conversation, // Active conversation
|
|
292
|
-
agentTyping, //
|
|
293
|
-
sendMessage, // Send a text message (optimistic)
|
|
294
|
-
retryMessage, // Retry a failed message
|
|
295
|
-
notifyTyping, // Send typing indicator (debounced 3s)
|
|
296
|
-
loadMore, // Load older messages
|
|
297
|
-
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
|
|
298
310
|
closeConversation, // Close the conversation
|
|
299
311
|
reopenConversation, // Reopen a closed conversation
|
|
300
312
|
} = useChat(conversationId);
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Sending messages:**
|
|
301
316
|
|
|
302
|
-
|
|
317
|
+
```tsx
|
|
318
|
+
// Appears instantly with status "sending", then updates to "sent" on server confirmation
|
|
303
319
|
await sendMessage('Hello, I need help with my order');
|
|
304
320
|
|
|
305
321
|
// Retry a failed message
|
|
306
322
|
const failed = messages.find(m => m.status === 'failed');
|
|
307
|
-
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
|
+
});
|
|
308
410
|
```
|
|
309
411
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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.
|
|
315
428
|
|
|
316
429
|
---
|
|
317
430
|
|
|
318
431
|
## Theming
|
|
319
432
|
|
|
320
|
-
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.
|
|
321
434
|
|
|
322
|
-
###
|
|
435
|
+
### Brand color only (most common)
|
|
323
436
|
|
|
324
437
|
```tsx
|
|
325
438
|
<ParlrProvider
|
|
@@ -359,12 +472,12 @@ The SDK automatically detects your system's dark/light mode. You can override an
|
|
|
359
472
|
>
|
|
360
473
|
```
|
|
361
474
|
|
|
362
|
-
### Programmatic access
|
|
475
|
+
### Programmatic theme access
|
|
363
476
|
|
|
364
477
|
```tsx
|
|
365
478
|
import { useParlr, defaultLightTheme, defaultDarkTheme, mergeTheme } from '@parlr/react-native';
|
|
366
479
|
|
|
367
|
-
// Access resolved theme in
|
|
480
|
+
// Access resolved theme in any component
|
|
368
481
|
const { theme } = useParlr();
|
|
369
482
|
<View style={{ backgroundColor: theme.colors.background }} />
|
|
370
483
|
|
|
@@ -378,22 +491,22 @@ const custom = mergeTheme(defaultDarkTheme, { colors: { primary: '#FF6B00' } });
|
|
|
378
491
|
```typescript
|
|
379
492
|
interface ParlrTheme {
|
|
380
493
|
colors: {
|
|
381
|
-
primary: string; // Accent color
|
|
382
|
-
primaryText: string; // Text on primary
|
|
494
|
+
primary: string; // Accent / brand color
|
|
495
|
+
primaryText: string; // Text on primary color
|
|
383
496
|
background: string; // Screen background
|
|
384
|
-
surface: string; // Card/input background
|
|
385
|
-
surfaceDark: string; // Darker surface (avatars)
|
|
386
|
-
text: string; // Primary text
|
|
497
|
+
surface: string; // Card / input background
|
|
498
|
+
surfaceDark: string; // Darker surface (avatars, headers)
|
|
499
|
+
text: string; // Primary text color
|
|
387
500
|
textSecondary: string; // Secondary text, timestamps
|
|
388
501
|
border: string; // Borders, dividers
|
|
389
|
-
success: string; // Online indicator
|
|
390
|
-
error: string; // Error states
|
|
391
|
-
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
|
|
392
505
|
agentBubbleDark: string; // Reserved
|
|
393
|
-
agentText: string; // Agent
|
|
506
|
+
agentText: string; // Agent message text color
|
|
394
507
|
agentTextDark: string; // Reserved
|
|
395
|
-
contactBubble: string; // Contact bubble background
|
|
396
|
-
contactText: string; // Contact
|
|
508
|
+
contactBubble: string; // Contact message bubble background
|
|
509
|
+
contactText: string; // Contact message text color
|
|
397
510
|
};
|
|
398
511
|
borderRadius: {
|
|
399
512
|
bubble: number; // Message bubbles (default: 16)
|
|
@@ -426,23 +539,28 @@ The SDK exports a typed error hierarchy for precise error handling:
|
|
|
426
539
|
|
|
427
540
|
```tsx
|
|
428
541
|
import {
|
|
429
|
-
ParlrError, // Base class
|
|
430
|
-
ParlrNetworkError, // HTTP errors (
|
|
431
|
-
ParlrAuthError, //
|
|
432
|
-
ParlrValidationError, //
|
|
433
|
-
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)
|
|
434
547
|
} from '@parlr/react-native';
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Example: global error monitoring**
|
|
435
551
|
|
|
552
|
+
```tsx
|
|
436
553
|
<ParlrProvider
|
|
437
554
|
workspaceId="your-workspace-id"
|
|
438
555
|
onError={(error) => {
|
|
439
556
|
if (error instanceof ParlrAuthError) {
|
|
440
|
-
// Session expired — SDK auto-refreshes
|
|
557
|
+
// Session expired — the SDK auto-refreshes, no action needed
|
|
441
558
|
} else if (error instanceof ParlrNetworkError) {
|
|
442
|
-
console.warn(`HTTP ${error.statusCode}`);
|
|
559
|
+
console.warn(`HTTP error: ${error.statusCode}`);
|
|
443
560
|
} else if (error instanceof ParlrConnectionError) {
|
|
444
|
-
console.warn(`WebSocket closed: ${error.reason}`);
|
|
561
|
+
console.warn(`WebSocket closed: ${error.code} ${error.reason}`);
|
|
445
562
|
}
|
|
563
|
+
// Send to your error tracking service
|
|
446
564
|
Sentry.captureException(error);
|
|
447
565
|
}}
|
|
448
566
|
>
|
|
@@ -452,7 +570,7 @@ import {
|
|
|
452
570
|
|
|
453
571
|
## Offline Support
|
|
454
572
|
|
|
455
|
-
|
|
573
|
+
Messages sent while offline are queued locally and automatically retried when connectivity returns.
|
|
456
574
|
|
|
457
575
|
```tsx
|
|
458
576
|
import {
|
|
@@ -462,15 +580,23 @@ import {
|
|
|
462
580
|
flushQueue,
|
|
463
581
|
} from '@parlr/react-native';
|
|
464
582
|
|
|
465
|
-
//
|
|
466
|
-
queueMessage({
|
|
583
|
+
// Manually queue a message
|
|
584
|
+
queueMessage({
|
|
585
|
+
conversationId: 'conv_123',
|
|
586
|
+
content: 'Hello',
|
|
587
|
+
clientId: 'uuid-v4',
|
|
588
|
+
timestamp: Date.now(),
|
|
589
|
+
});
|
|
467
590
|
|
|
468
|
-
//
|
|
591
|
+
// Inspect the queue
|
|
469
592
|
const queued = await getQueuedMessages();
|
|
593
|
+
console.log(`${queued.length} messages pending`);
|
|
594
|
+
|
|
595
|
+
// Flush (send all queued messages)
|
|
470
596
|
await flushQueue(api);
|
|
471
597
|
```
|
|
472
598
|
|
|
473
|
-
Uses AsyncStorage when available, falls back to in-memory storage.
|
|
599
|
+
Uses `AsyncStorage` when available, falls back to in-memory storage.
|
|
474
600
|
|
|
475
601
|
---
|
|
476
602
|
|
|
@@ -481,10 +607,10 @@ Register device tokens for FCM (Android) or APNs (iOS) push notifications:
|
|
|
481
607
|
```tsx
|
|
482
608
|
import { registerPushToken, unregisterPushToken } from '@parlr/react-native';
|
|
483
609
|
|
|
484
|
-
// After obtaining the device token from expo-notifications or react-native-
|
|
485
|
-
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'
|
|
486
612
|
|
|
487
|
-
// On logout
|
|
613
|
+
// On logout or when the user disables notifications
|
|
488
614
|
await unregisterPushToken(api, deviceToken);
|
|
489
615
|
```
|
|
490
616
|
|
|
@@ -492,16 +618,28 @@ await unregisterPushToken(api, deviceToken);
|
|
|
492
618
|
|
|
493
619
|
## Identity Verification (HMAC)
|
|
494
620
|
|
|
495
|
-
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:**
|
|
496
634
|
|
|
497
635
|
```tsx
|
|
498
636
|
<ParlrProvider
|
|
499
637
|
workspaceId="your-workspace-id"
|
|
500
|
-
identityToken={
|
|
638
|
+
identityToken={identityTokenFromYourBackend}
|
|
501
639
|
>
|
|
502
640
|
```
|
|
503
641
|
|
|
504
|
-
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.
|
|
505
643
|
|
|
506
644
|
---
|
|
507
645
|
|
|
@@ -514,17 +652,22 @@ The token is sent as `X-Identity-Token` on every identification request.
|
|
|
514
652
|
|
|
515
653
|
```typescript
|
|
516
654
|
interface ParlrUser {
|
|
517
|
-
email?: string;
|
|
518
|
-
name?: string;
|
|
519
|
-
firstName?: string;
|
|
520
|
-
lastName?: string;
|
|
521
|
-
externalId?: string;
|
|
522
|
-
phone?: string;
|
|
523
|
-
company?: string;
|
|
524
|
-
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
|
|
525
663
|
}
|
|
526
664
|
```
|
|
527
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
|
+
|
|
528
671
|
</details>
|
|
529
672
|
|
|
530
673
|
<details>
|
|
@@ -532,10 +675,10 @@ interface ParlrUser {
|
|
|
532
675
|
|
|
533
676
|
```typescript
|
|
534
677
|
interface Session {
|
|
535
|
-
token: string; // JWT token
|
|
536
|
-
contactId: string; //
|
|
678
|
+
token: string; // JWT session token
|
|
679
|
+
contactId: string; // Unique contact ID
|
|
537
680
|
workspaceId: string; // Workspace ID
|
|
538
|
-
expiresAt: string; // ISO 8601 expiration
|
|
681
|
+
expiresAt: string; // ISO 8601 expiration timestamp
|
|
539
682
|
}
|
|
540
683
|
```
|
|
541
684
|
|
|
@@ -549,9 +692,13 @@ interface Conversation {
|
|
|
549
692
|
id: string;
|
|
550
693
|
status: 'open' | 'resolved' | 'pending' | 'closed';
|
|
551
694
|
subject: string | null;
|
|
552
|
-
lastMessageAt: string | null;
|
|
695
|
+
lastMessageAt: string | null; // ISO 8601
|
|
553
696
|
unreadCount: number;
|
|
554
|
-
assignee?: {
|
|
697
|
+
assignee?: {
|
|
698
|
+
id: string;
|
|
699
|
+
name: string;
|
|
700
|
+
avatarUrl?: string;
|
|
701
|
+
} | null;
|
|
555
702
|
}
|
|
556
703
|
```
|
|
557
704
|
|
|
@@ -568,8 +715,8 @@ interface Message {
|
|
|
568
715
|
senderName?: string;
|
|
569
716
|
senderAvatarUrl?: string;
|
|
570
717
|
content: string;
|
|
571
|
-
createdAt: string;
|
|
572
|
-
clientId?: string;
|
|
718
|
+
createdAt: string; // ISO 8601
|
|
719
|
+
clientId?: string; // For optimistic deduplication
|
|
573
720
|
status?: 'sending' | 'sent' | 'failed' | 'read';
|
|
574
721
|
attachments?: Attachment[];
|
|
575
722
|
contentType?: 'text' | 'image' | 'file' | 'rich';
|
|
@@ -585,10 +732,10 @@ interface Message {
|
|
|
585
732
|
```typescript
|
|
586
733
|
interface Attachment {
|
|
587
734
|
id: string;
|
|
588
|
-
name: string;
|
|
589
|
-
url: string;
|
|
590
|
-
contentType: string;
|
|
591
|
-
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
|
|
592
739
|
}
|
|
593
740
|
```
|
|
594
741
|
|
|
@@ -623,7 +770,7 @@ interface RichAction {
|
|
|
623
770
|
</details>
|
|
624
771
|
|
|
625
772
|
<details>
|
|
626
|
-
<summary><strong>WebSocket
|
|
773
|
+
<summary><strong>WebSocket events</strong></summary>
|
|
627
774
|
|
|
628
775
|
```typescript
|
|
629
776
|
interface WsEventMap {
|
|
@@ -640,14 +787,14 @@ interface WsEventMap {
|
|
|
640
787
|
}
|
|
641
788
|
```
|
|
642
789
|
|
|
643
|
-
**
|
|
790
|
+
**Connection behavior:**
|
|
644
791
|
- Auto-reconnect with exponential backoff (1s → 30s max)
|
|
645
|
-
- Keep-alive ping every 25s, timeout at 50s
|
|
646
|
-
- Clean listener teardown on unmount
|
|
792
|
+
- Keep-alive ping every 25s, server timeout at 50s
|
|
793
|
+
- Clean listener teardown on component unmount
|
|
647
794
|
|
|
648
795
|
</details>
|
|
649
796
|
|
|
650
|
-
### All
|
|
797
|
+
### All exports
|
|
651
798
|
|
|
652
799
|
```typescript
|
|
653
800
|
// Components
|
|
@@ -753,7 +900,11 @@ import { ParlrChat } from '@parlr/react-native';
|
|
|
753
900
|
function SupportScreen({ navigation }) {
|
|
754
901
|
return (
|
|
755
902
|
<ParlrChat
|
|
756
|
-
user={{
|
|
903
|
+
user={{
|
|
904
|
+
email: 'alice@acme.com',
|
|
905
|
+
firstName: 'Alice',
|
|
906
|
+
lastName: 'Martin',
|
|
907
|
+
}}
|
|
757
908
|
onBack={() => navigation.goBack()}
|
|
758
909
|
headerTitle="Help & Support"
|
|
759
910
|
showPreChatForm={true}
|
|
@@ -762,7 +913,41 @@ function SupportScreen({ navigation }) {
|
|
|
762
913
|
}
|
|
763
914
|
```
|
|
764
915
|
|
|
765
|
-
###
|
|
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
|
|
766
951
|
|
|
767
952
|
```tsx
|
|
768
953
|
import { ParlrConversationList, ParlrChat } from '@parlr/react-native';
|
|
@@ -793,6 +978,7 @@ function ChatScreen({ route, navigation }) {
|
|
|
793
978
|
```tsx
|
|
794
979
|
import { useChat, ChatBubble, TypingIndicator } from '@parlr/react-native';
|
|
795
980
|
import { FlatList, TextInput, TouchableOpacity, View, Text } from 'react-native';
|
|
981
|
+
import { useState } from 'react';
|
|
796
982
|
|
|
797
983
|
function CustomChat({ conversationId }) {
|
|
798
984
|
const [text, setText] = useState('');
|
|
@@ -820,10 +1006,10 @@ function CustomChat({ conversationId }) {
|
|
|
820
1006
|
<TextInput
|
|
821
1007
|
value={text}
|
|
822
1008
|
onChangeText={(t) => { setText(t); notifyTyping(true); }}
|
|
823
|
-
style={{ flex: 1 }}
|
|
1009
|
+
style={{ flex: 1, borderWidth: 1, borderRadius: 8, padding: 8 }}
|
|
824
1010
|
placeholder="Type a message..."
|
|
825
1011
|
/>
|
|
826
|
-
<TouchableOpacity onPress={handleSend}>
|
|
1012
|
+
<TouchableOpacity onPress={handleSend} style={{ padding: 8 }}>
|
|
827
1013
|
<Text>Send</Text>
|
|
828
1014
|
</TouchableOpacity>
|
|
829
1015
|
</View>
|
|
@@ -843,8 +1029,8 @@ Point the SDK to your own Parlr instance:
|
|
|
843
1029
|
```tsx
|
|
844
1030
|
<ParlrProvider
|
|
845
1031
|
workspaceId="your-workspace-id"
|
|
846
|
-
apiBaseUrl="https://your-
|
|
847
|
-
wsUrl="wss://your-
|
|
1032
|
+
apiBaseUrl="https://api.your-domain.com/api/v1/widget"
|
|
1033
|
+
wsUrl="wss://ws.your-domain.com/ws"
|
|
848
1034
|
>
|
|
849
1035
|
```
|
|
850
1036
|
|
|
@@ -854,7 +1040,11 @@ Point the SDK to your own Parlr instance:
|
|
|
854
1040
|
<ParlrProvider workspaceId="your-workspace-id" debug={true}>
|
|
855
1041
|
```
|
|
856
1042
|
|
|
857
|
-
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
|
|
858
1048
|
|
|
859
1049
|
---
|
|
860
1050
|
|
|
@@ -870,46 +1060,65 @@ Sign up at [app.parlr.chat](https://app.parlr.chat), create a workspace, and fin
|
|
|
870
1060
|
<details>
|
|
871
1061
|
<summary><strong>Does the SDK work with Expo?</strong></summary>
|
|
872
1062
|
|
|
873
|
-
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.
|
|
874
1064
|
|
|
875
1065
|
</details>
|
|
876
1066
|
|
|
877
1067
|
<details>
|
|
878
1068
|
<summary><strong>What happens when the device goes offline?</strong></summary>
|
|
879
1069
|
|
|
880
|
-
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.
|
|
881
1071
|
|
|
882
1072
|
</details>
|
|
883
1073
|
|
|
884
1074
|
<details>
|
|
885
1075
|
<summary><strong>Can I use the SDK without any UI components?</strong></summary>
|
|
886
1076
|
|
|
887
|
-
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.
|
|
888
1078
|
|
|
889
1079
|
</details>
|
|
890
1080
|
|
|
891
1081
|
<details>
|
|
892
1082
|
<summary><strong>How does identity verification work?</strong></summary>
|
|
893
1083
|
|
|
894
|
-
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`).
|
|
895
1092
|
|
|
896
1093
|
</details>
|
|
897
1094
|
|
|
898
1095
|
---
|
|
899
1096
|
|
|
900
|
-
##
|
|
1097
|
+
## Changelog
|
|
901
1098
|
|
|
902
|
-
|
|
1099
|
+
### 0.1.3
|
|
903
1100
|
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
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
|
+
|
|
1107
|
+
### 0.1.1
|
|
1108
|
+
|
|
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.
|
|
1110
|
+
- Internal improvements to session creation payload.
|
|
1111
|
+
|
|
1112
|
+
### 0.1.0
|
|
1113
|
+
|
|
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.
|
|
1115
|
+
|
|
1116
|
+
---
|
|
1117
|
+
|
|
1118
|
+
## Support
|
|
1119
|
+
|
|
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)
|
|
913
1122
|
|
|
914
1123
|
---
|
|
915
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(
|