@repzo/widget-react-native 1.2.1 → 1.2.2
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/CHANGELOG.md +28 -0
- package/README.md +31 -0
- package/lib/commonjs/api/client.js +47 -2
- package/lib/commonjs/api/client.js.map +1 -1
- package/lib/commonjs/audio/voice.js +119 -0
- package/lib/commonjs/audio/voice.js.map +1 -0
- package/lib/commonjs/i18n.js +6 -0
- package/lib/commonjs/i18n.js.map +1 -1
- package/lib/commonjs/locales.js +4 -0
- package/lib/commonjs/locales.js.map +1 -1
- package/lib/commonjs/state/use-widget-state.js +31 -0
- package/lib/commonjs/state/use-widget-state.js.map +1 -1
- package/lib/commonjs/state/widget-store.js +22 -1
- package/lib/commonjs/state/widget-store.js.map +1 -1
- package/lib/commonjs/ui/WidgetProvider.js +6 -0
- package/lib/commonjs/ui/WidgetProvider.js.map +1 -1
- package/lib/commonjs/ui/components/FileCard.js +134 -0
- package/lib/commonjs/ui/components/FileCard.js.map +1 -0
- package/lib/commonjs/ui/components/Launcher.js +15 -1
- package/lib/commonjs/ui/components/Launcher.js.map +1 -1
- package/lib/commonjs/ui/components/VoiceNote.js +354 -0
- package/lib/commonjs/ui/components/VoiceNote.js.map +1 -0
- package/lib/commonjs/ui/components/icons.js +57 -0
- package/lib/commonjs/ui/components/icons.js.map +1 -1
- package/lib/commonjs/ui/screens/chat/ChatView.js +33 -14
- package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -1
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js +0 -9
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -1
- package/lib/module/api/client.js +48 -2
- package/lib/module/api/client.js.map +1 -1
- package/lib/module/audio/voice.js +110 -0
- package/lib/module/audio/voice.js.map +1 -0
- package/lib/module/i18n.js +6 -0
- package/lib/module/i18n.js.map +1 -1
- package/lib/module/locales.js +4 -0
- package/lib/module/locales.js.map +1 -1
- package/lib/module/state/use-widget-state.js +30 -1
- package/lib/module/state/use-widget-state.js.map +1 -1
- package/lib/module/state/widget-store.js +22 -1
- package/lib/module/state/widget-store.js.map +1 -1
- package/lib/module/ui/WidgetProvider.js +6 -0
- package/lib/module/ui/WidgetProvider.js.map +1 -1
- package/lib/module/ui/components/FileCard.js +130 -0
- package/lib/module/ui/components/FileCard.js.map +1 -0
- package/lib/module/ui/components/Launcher.js +16 -2
- package/lib/module/ui/components/Launcher.js.map +1 -1
- package/lib/module/ui/components/VoiceNote.js +350 -0
- package/lib/module/ui/components/VoiceNote.js.map +1 -0
- package/lib/module/ui/components/icons.js +55 -0
- package/lib/module/ui/components/icons.js.map +1 -1
- package/lib/module/ui/screens/chat/ChatView.js +33 -14
- package/lib/module/ui/screens/chat/ChatView.js.map +1 -1
- package/lib/module/ui/screens/chat/ChatView.styles.js +0 -9
- package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -1
- package/lib/typescript/commonjs/api/client.d.ts +12 -0
- package/lib/typescript/commonjs/api/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/audio/voice.d.ts +29 -0
- package/lib/typescript/commonjs/audio/voice.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n.d.ts +4 -0
- package/lib/typescript/commonjs/i18n.d.ts.map +1 -1
- package/lib/typescript/commonjs/locales.d.ts.map +1 -1
- package/lib/typescript/commonjs/state/use-widget-state.d.ts +8 -0
- package/lib/typescript/commonjs/state/use-widget-state.d.ts.map +1 -1
- package/lib/typescript/commonjs/state/widget-store.d.ts +2 -0
- package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FileCard.d.ts +21 -0
- package/lib/typescript/commonjs/ui/components/FileCard.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/Launcher.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/VoiceNote.d.ts +32 -0
- package/lib/typescript/commonjs/ui/components/VoiceNote.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/icons.d.ts +4 -0
- package/lib/typescript/commonjs/ui/components/icons.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +0 -9
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +4 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -1
- package/lib/typescript/module/api/client.d.ts +12 -0
- package/lib/typescript/module/api/client.d.ts.map +1 -1
- package/lib/typescript/module/audio/voice.d.ts +29 -0
- package/lib/typescript/module/audio/voice.d.ts.map +1 -0
- package/lib/typescript/module/i18n.d.ts +4 -0
- package/lib/typescript/module/i18n.d.ts.map +1 -1
- package/lib/typescript/module/locales.d.ts.map +1 -1
- package/lib/typescript/module/state/use-widget-state.d.ts +8 -0
- package/lib/typescript/module/state/use-widget-state.d.ts.map +1 -1
- package/lib/typescript/module/state/widget-store.d.ts +2 -0
- package/lib/typescript/module/state/widget-store.d.ts.map +1 -1
- package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FileCard.d.ts +21 -0
- package/lib/typescript/module/ui/components/FileCard.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/Launcher.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/VoiceNote.d.ts +32 -0
- package/lib/typescript/module/ui/components/VoiceNote.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/icons.d.ts +4 -0
- package/lib/typescript/module/ui/components/icons.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +0 -9
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +4 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/api/client.ts +56 -2
- package/src/audio/voice.ts +103 -0
- package/src/i18n.ts +6 -0
- package/src/locales.ts +4 -0
- package/src/state/use-widget-state.ts +30 -1
- package/src/state/widget-store.ts +22 -1
- package/src/ui/WidgetProvider.tsx +6 -0
- package/src/ui/components/FileCard.tsx +111 -0
- package/src/ui/components/Launcher.tsx +7 -2
- package/src/ui/components/VoiceNote.tsx +363 -0
- package/src/ui/components/icons.tsx +33 -0
- package/src/ui/screens/chat/ChatView.styles.ts +0 -9
- package/src/ui/screens/chat/ChatView.tsx +39 -13
- package/src/ui/screens/chat/ChatView.types.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,34 @@ All notable changes to `@repzo/widget-react-native`, newest first.
|
|
|
12
12
|
|
|
13
13
|
## Unreleased
|
|
14
14
|
|
|
15
|
+
## 1.2.2 — 2026-10-26
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **Voice messages play in the chat.** Voice notes from your team (and any
|
|
20
|
+
other audio file) get a player in the message — play/pause, a waveform to
|
|
21
|
+
tap or drag through, and 1×/1.5×/2× speed — instead of a file that opens in
|
|
22
|
+
the browser. Needs the new optional peer `expo-audio` (Expo SDK 53+) in your
|
|
23
|
+
app and a native rebuild; without it, audio still opens in the browser. A
|
|
24
|
+
note downloads only when it's played, and one that can't be played opens in
|
|
25
|
+
the browser instead. The widget doesn't change your app's audio session, so
|
|
26
|
+
on iOS notes stay muted with the ringer switch on silent unless your app
|
|
27
|
+
calls `setAudioModeAsync({ playsInSilentMode: true })` from `expo-audio`.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- **Fewer requests when your app comes back to the foreground.** Back within
|
|
32
|
+
five minutes, the widget only catches up the conversation list and the open
|
|
33
|
+
conversation; availability and the Send post are re-checked after longer
|
|
34
|
+
breaks. Returning from a system sheet, Face ID or the notification shade
|
|
35
|
+
(the app never left the foreground) no longer re-checks anything.
|
|
36
|
+
- **One request for the post and the launcher's chat message at start-up**
|
|
37
|
+
instead of two, with a newer Workstation. Older deployments keep getting
|
|
38
|
+
the two requests as before.
|
|
39
|
+
- **`RepzoWidgetLauncher` redraws less.** It now only re-renders when its
|
|
40
|
+
color, position, open state or unread badge changes, not on every message
|
|
41
|
+
or typing event.
|
|
42
|
+
|
|
15
43
|
## 1.2.1 — 2026-10-18
|
|
16
44
|
|
|
17
45
|
### Added
|
package/README.md
CHANGED
|
@@ -25,6 +25,7 @@ in your Repzo Inbox and agent replies arrive live.
|
|
|
25
25
|
- Catches up after a dropped connection or a trip to the background — no missed or duplicated replies
|
|
26
26
|
- Agent UI blocks: product cards, slot pickers, lead forms, quotes, receipts
|
|
27
27
|
- **Photo and file attachments** (optional — with `expo-image-picker` / `expo-document-picker`, or your own picker)
|
|
28
|
+
- **Voice messages play in the chat** (optional — with `expo-audio`)
|
|
28
29
|
- **In-app notification cards** for new replies while the messenger is closed
|
|
29
30
|
- **Posts** from Workstation over the app, with replies or emoji reactions
|
|
30
31
|
- **Push notifications via FCM** (optional — needs `@react-native-firebase/messaging` in the host app), including Mobile Push campaigns from Workstation with images
|
|
@@ -45,6 +46,7 @@ in your Repzo Inbox and agent replies arrive live.
|
|
|
45
46
|
| `expo-document-picker` | optional — "File" attachments |
|
|
46
47
|
| `expo-file-system` | optional — reads picked files as base64 (falls back to `fetch` without it) |
|
|
47
48
|
| `expo-image-manipulator` | optional — shrinks photos so camera shots fit the 1.5 MB attachment limit |
|
|
49
|
+
| `expo-audio` | optional (*1.2.2+*) — plays voice messages and audio files inside the chat (Expo SDK 53+) |
|
|
48
50
|
| `expo-crypto` | optional (*1.1.0+*) — secure random source for the anonymous device id when the runtime has no `crypto` global (see below) |
|
|
49
51
|
|
|
50
52
|
Realtime uses React Native’s built-in streaming XMLHttpRequest; there are no bundled runtime dependencies.
|
|
@@ -374,6 +376,35 @@ await RepzoWidget.boot({
|
|
|
374
376
|
The limits still apply to whatever `pick` returns. To turn attachments off in
|
|
375
377
|
the app regardless of the channel setting, pass `attachments: { enabled: false }`.
|
|
376
378
|
|
|
379
|
+
### Voice messages
|
|
380
|
+
|
|
381
|
+
*1.2.2+.* Voice messages from your team, and any other audio file in the
|
|
382
|
+
conversation, play right in the chat — a play button, a waveform to tap or
|
|
383
|
+
drag through, and 1×/1.5×/2× speed — once your app has `expo-audio`:
|
|
384
|
+
|
|
385
|
+
```sh
|
|
386
|
+
npx expo install expo-audio
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
It's a native module, so rebuild the app (a new development build or store
|
|
390
|
+
build; an over-the-air update alone isn't enough). Without it, audio shows as a
|
|
391
|
+
file the visitor taps to open in the browser, as before. A note only downloads
|
|
392
|
+
once the visitor taps play, starting one pauses any other, and a note that
|
|
393
|
+
can't be played falls back to that file.
|
|
394
|
+
|
|
395
|
+
The widget leaves your app's audio session alone, so notes follow your
|
|
396
|
+
expo-audio settings. On iOS that means they're muted while the ringer switch is
|
|
397
|
+
on silent, unless your app turns that on:
|
|
398
|
+
|
|
399
|
+
```ts
|
|
400
|
+
import { setAudioModeAsync } from 'expo-audio';
|
|
401
|
+
|
|
402
|
+
await setAudioModeAsync({ playsInSilentMode: true });
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
On iOS, `setAudioModeAsync` resets any field you leave out to its default, so
|
|
406
|
+
pass the rest of your app's audio mode along with it.
|
|
407
|
+
|
|
377
408
|
## Errors
|
|
378
409
|
|
|
379
410
|
`boot()` / login calls reject with a `RepzoWidgetError` (`status`, `code`).
|
|
@@ -38,6 +38,8 @@ class RepzoWidgetError extends Error {
|
|
|
38
38
|
return new RepzoWidgetError(message || `HTTP ${status}`, status, code);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
/** A Send message part asked for on its own, which may share one request with others. */
|
|
41
43
|
exports.RepzoWidgetError = RepzoWidgetError;
|
|
42
44
|
class WidgetApiClient {
|
|
43
45
|
baseUrl = '';
|
|
@@ -53,6 +55,9 @@ class WidgetApiClient {
|
|
|
53
55
|
|
|
54
56
|
/** Set by the store: a 403 with a terminal `code` came back from any endpoint. */
|
|
55
57
|
onTerminalError = null;
|
|
58
|
+
|
|
59
|
+
/** Send parts asked for in this tick — see askSendPart. */
|
|
60
|
+
sendPartBatch = null;
|
|
56
61
|
configure(baseUrl, channelAccountId) {
|
|
57
62
|
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
58
63
|
this.channelAccountId = channelAccountId;
|
|
@@ -141,7 +146,7 @@ class WidgetApiClient {
|
|
|
141
146
|
return this.request(`/api/widget/config/${encodeURIComponent(this.channelAccountId)}${query}`);
|
|
142
147
|
}
|
|
143
148
|
getOutboundMessage() {
|
|
144
|
-
return this.request(`/api/widget/outbound/${encodeURIComponent(this.channelAccountId)}`);
|
|
149
|
+
return this.askSendPart('outbound', () => this.request(`/api/widget/outbound/${encodeURIComponent(this.channelAccountId)}`));
|
|
145
150
|
}
|
|
146
151
|
|
|
147
152
|
/**
|
|
@@ -149,7 +154,47 @@ class WidgetApiClient {
|
|
|
149
154
|
* `recheckInMs`: ask again after this long — the shown one stops then.
|
|
150
155
|
*/
|
|
151
156
|
getPost() {
|
|
152
|
-
return this.request('/api/widget/send/post?platform=mobile');
|
|
157
|
+
return this.askSendPart('post', () => this.request('/api/widget/send/post?platform=mobile'));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The post and the launcher's chat message are both asked for right after a
|
|
162
|
+
* session starts: asks made in the same tick go out as one request (each
|
|
163
|
+
* part answers the way its own endpoint does). A lone ask, a Workstation
|
|
164
|
+
* deployment that doesn't know a part yet (it leaves it out — the
|
|
165
|
+
* `outbound` part is newer than the combined endpoint), or a failed combined
|
|
166
|
+
* request falls back to each part's own endpoint, as before.
|
|
167
|
+
*/
|
|
168
|
+
askSendPart(part, own) {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
if (!this.sendPartBatch) {
|
|
171
|
+
this.sendPartBatch = [];
|
|
172
|
+
setTimeout(() => void this.flushSendParts(), 0);
|
|
173
|
+
}
|
|
174
|
+
this.sendPartBatch.push({
|
|
175
|
+
part,
|
|
176
|
+
own,
|
|
177
|
+
resolve: resolve,
|
|
178
|
+
reject
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
async flushSendParts() {
|
|
183
|
+
const asks = this.sendPartBatch ?? [];
|
|
184
|
+
this.sendPartBatch = null;
|
|
185
|
+
const parts = Array.from(new Set(asks.map(ask => ask.part)));
|
|
186
|
+
let answer = null;
|
|
187
|
+
if (parts.length > 1) {
|
|
188
|
+
try {
|
|
189
|
+
answer = await this.request(`/api/widget/send/messages?include=${parts.join(',')}&platform=mobile`);
|
|
190
|
+
} catch {
|
|
191
|
+
answer = null;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
for (const ask of asks) {
|
|
195
|
+
const value = answer?.[ask.part];
|
|
196
|
+
if (value && typeof value === 'object') ask.resolve(value);else ask.own().then(ask.resolve, ask.reject);
|
|
197
|
+
}
|
|
153
198
|
}
|
|
154
199
|
|
|
155
200
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_storage","require","_safeUrl","TERMINAL_CODES","Set","isTerminalErrorCode","code","has","RepzoWidgetError","Error","constructor","message","status","name","fromResponse","body","payload","exports","WidgetApiClient","baseUrl","channelAccountId","token","tokenLoaded","reauthorize","onTerminalError","configure","replace","getBaseUrl","getChannelAccountId","getToken","SecureStorage","getItem","TOKEN_KEY","setToken","setItem","clearToken","removeItem","resolveUrl","url","trimmed","trim","isHttpUrl","urlScheme","resolved","startsWith","request","path","options","sentToken","send","headers","authToken","undefined","Authorization","fetch","method","JSON","stringify","error","response","skipReauth","refreshed","ok","json","catch","getConfig","platform","query","encodeURIComponent","getOutboundMessage","getPost","sendPostInteraction","campaignId","kind","value","init","params","visitorToken","resumeToken","user","email","phone","userId","user_id","userHash","user_hash","account","id","signedUpAt","signed_up_at","Date","toISOString","trackingVisitorId","sdkVersion","logout","sendMessage","data","listConversations","listMessages","conversationId","cursor","markConversationRead","rateConversation","ratingId","identify","sendTyping","isTyping","trackEvent","registerPushToken","reportPushOpened","deliveryId","removePushToken","auth"],"sourceRoot":"../../../src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_storage","require","_safeUrl","TERMINAL_CODES","Set","isTerminalErrorCode","code","has","RepzoWidgetError","Error","constructor","message","status","name","fromResponse","body","payload","exports","WidgetApiClient","baseUrl","channelAccountId","token","tokenLoaded","reauthorize","onTerminalError","sendPartBatch","configure","replace","getBaseUrl","getChannelAccountId","getToken","SecureStorage","getItem","TOKEN_KEY","setToken","setItem","clearToken","removeItem","resolveUrl","url","trimmed","trim","isHttpUrl","urlScheme","resolved","startsWith","request","path","options","sentToken","send","headers","authToken","undefined","Authorization","fetch","method","JSON","stringify","error","response","skipReauth","refreshed","ok","json","catch","getConfig","platform","query","encodeURIComponent","getOutboundMessage","askSendPart","getPost","part","own","Promise","resolve","reject","setTimeout","flushSendParts","push","asks","parts","Array","from","map","ask","answer","length","join","value","then","sendPostInteraction","campaignId","kind","init","params","visitorToken","resumeToken","user","email","phone","userId","user_id","userHash","user_hash","account","id","signedUpAt","signed_up_at","Date","toISOString","trackingVisitorId","sdkVersion","logout","sendMessage","data","listConversations","listMessages","conversationId","cursor","markConversationRead","rateConversation","ratingId","identify","sendTyping","isTyping","trackEvent","registerPushToken","reportPushOpened","deliveryId","removePushToken","auth"],"sourceRoot":"../../../src","sources":["api/client.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.audioPlayerOptions = audioPlayerOptions;
|
|
7
|
+
exports.claimVoicePlayback = claimVoicePlayback;
|
|
8
|
+
exports.formatVoiceClock = formatVoiceClock;
|
|
9
|
+
exports.isPlayableAudio = isPlayableAudio;
|
|
10
|
+
exports.voicePlaybackModule = voicePlaybackModule;
|
|
11
|
+
exports.voiceWaveformLevels = voiceWaveformLevels;
|
|
12
|
+
/**
|
|
13
|
+
* Voice notes (and any audio file) play inside the chat when the host app has
|
|
14
|
+
* `expo-audio`; without it they stay a file row that opens in the browser.
|
|
15
|
+
*
|
|
16
|
+
* Resolved once at module load, like the attachment pickers: each `require` is
|
|
17
|
+
* static so Metro can see it, and with `allowOptionalDependencies` (see
|
|
18
|
+
* metro.js) an uninstalled one bundles as a require that throws, which the
|
|
19
|
+
* `try` around it catches.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
let expoAudio = null;
|
|
23
|
+
try {
|
|
24
|
+
const mod = require('expo-audio');
|
|
25
|
+
if (typeof mod?.useAudioPlayer === 'function' && typeof mod?.useAudioPlayerStatus === 'function') {
|
|
26
|
+
expoAudio = mod;
|
|
27
|
+
}
|
|
28
|
+
} catch {
|
|
29
|
+
expoAudio = null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// expo-audio 1.x (Expo SDK 54+) takes `{ updateInterval }`; 0.x (SDK 53) took
|
|
33
|
+
// the interval itself. Passing the wrong shape would break the player.
|
|
34
|
+
let takesOptionsObject = true;
|
|
35
|
+
try {
|
|
36
|
+
const version = require('expo-audio/package.json')?.version;
|
|
37
|
+
if (typeof version === 'string') takesOptionsObject = Number(version.split('.')[0]) >= 1;
|
|
38
|
+
} catch {
|
|
39
|
+
takesOptionsObject = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** How often the playhead moves while a note plays. */
|
|
43
|
+
const UPDATE_INTERVAL_MS = 100;
|
|
44
|
+
|
|
45
|
+
/** The installed expo-audio module, or null when the app doesn't have it. */
|
|
46
|
+
function voicePlaybackModule() {
|
|
47
|
+
return expoAudio;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** The second argument to `useAudioPlayer` for the installed expo-audio. */
|
|
51
|
+
function audioPlayerOptions() {
|
|
52
|
+
return takesOptionsObject ? {
|
|
53
|
+
updateInterval: UPDATE_INTERVAL_MS
|
|
54
|
+
} : UPDATE_INTERVAL_MS;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Audio the chat can play in place: an `audio/*` attachment with a web address. */
|
|
58
|
+
function isPlayableAudio(contentType, url) {
|
|
59
|
+
return !!expoAudio && (contentType ?? '').toLowerCase().startsWith('audio/') && /^https?:\/\//i.test(url ?? '');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// ─── One note at a time ─────────────────────────────────────────────────────
|
|
63
|
+
// Each bubble owns its own player, so starting a second note would otherwise
|
|
64
|
+
// talk over the first.
|
|
65
|
+
|
|
66
|
+
let playing = null;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Called as a note starts: pauses whichever note was playing and returns a
|
|
70
|
+
* release for this one's claim (call it when the note goes away).
|
|
71
|
+
*/
|
|
72
|
+
function claimVoicePlayback(pause) {
|
|
73
|
+
const claim = {
|
|
74
|
+
pause
|
|
75
|
+
};
|
|
76
|
+
const previous = playing;
|
|
77
|
+
playing = claim;
|
|
78
|
+
if (previous) {
|
|
79
|
+
try {
|
|
80
|
+
previous.pause();
|
|
81
|
+
} catch {
|
|
82
|
+
// Its player was released with its bubble: nothing is playing.
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return () => {
|
|
86
|
+
if (playing === claim) playing = null;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ─── Waveform ───────────────────────────────────────────────────────────────
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Bar heights (0.15–1) for a note's waveform. Workstation doesn't send the
|
|
94
|
+
* recorded loudness to visitors, so the pattern is made up — seeded from the
|
|
95
|
+
* attachment, so the same note always draws the same bars.
|
|
96
|
+
*/
|
|
97
|
+
function voiceWaveformLevels(seed, count) {
|
|
98
|
+
let h = 2166136261;
|
|
99
|
+
for (let i = 0; i < seed.length; i += 1) {
|
|
100
|
+
h ^= seed.charCodeAt(i);
|
|
101
|
+
h = Math.imul(h, 16777619);
|
|
102
|
+
}
|
|
103
|
+
const levels = [];
|
|
104
|
+
for (let i = 0; i < count; i += 1) {
|
|
105
|
+
h ^= h << 13;
|
|
106
|
+
h ^= h >>> 17;
|
|
107
|
+
h ^= h << 5;
|
|
108
|
+
const n = (h >>> 0) % 1000 / 1000;
|
|
109
|
+
levels.push(0.15 + Math.pow(n, 0.85) * 0.85);
|
|
110
|
+
}
|
|
111
|
+
return levels;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** `m:ss` for a playback position or length. */
|
|
115
|
+
function formatVoiceClock(seconds) {
|
|
116
|
+
const s = Math.max(0, Math.floor(Number.isFinite(seconds) ? seconds : 0));
|
|
117
|
+
return `${Math.floor(s / 60)}:${(s % 60).toString().padStart(2, '0')}`;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=voice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["expoAudio","mod","require","useAudioPlayer","useAudioPlayerStatus","takesOptionsObject","version","Number","split","UPDATE_INTERVAL_MS","voicePlaybackModule","audioPlayerOptions","updateInterval","isPlayableAudio","contentType","url","toLowerCase","startsWith","test","playing","claimVoicePlayback","pause","claim","previous","voiceWaveformLevels","seed","count","h","i","length","charCodeAt","Math","imul","levels","n","push","pow","formatVoiceClock","seconds","s","max","floor","isFinite","toString","padStart"],"sourceRoot":"../../../src","sources":["audio/voice.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/i18n.js
CHANGED
|
@@ -63,6 +63,12 @@ const DEFAULT_LABELS = exports.DEFAULT_LABELS = {
|
|
|
63
63
|
attachmentTooMany: 'You can attach up to {count} files',
|
|
64
64
|
attachmentsTooLargeTogether: 'Attachments are too large to send together — send some in another message',
|
|
65
65
|
attachmentFailed: "Couldn't attach that file",
|
|
66
|
+
// A file in a message; tapping opens it. `{name}` is the file name.
|
|
67
|
+
openAttachment: 'Open {name}',
|
|
68
|
+
// Voice notes played in the chat (with expo-audio).
|
|
69
|
+
voicePlay: 'Play voice message',
|
|
70
|
+
voicePause: 'Pause voice message',
|
|
71
|
+
voiceSpeed: 'Playback speed',
|
|
66
72
|
// Full-screen image viewer.
|
|
67
73
|
imageLoadFailed: "Couldn't load this image",
|
|
68
74
|
openImageExternally: 'Open image',
|
package/lib/commonjs/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_locales","require","createTranslator","config","locale","defaultLocale","active","baseLanguage","fallbackLocale","key","fallback","translations","BUNDLED_TRANSLATIONS","WELCOME_TEXT_KEYS","localizeWelcomeText","translate","localized","forEach","DEFAULT_LABELS","exports","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","attachPhotoLibrary","attachTakePhoto","attachChooseFile","removeAttachment","attachmentTooLarge","attachmentTooMany","attachmentsTooLargeTogether","attachmentFailed","imageLoadFailed","openImageExternally","cameraPermissionDenied","cancel","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","messageDeleted","messageSent","messageSeen","waitingForTeammate","joinedConversation","ratingQuestion","ratingReasonPrompt","ratingCommentPlaceholder","ratingSubmit","ratingDone","ratingThanks","ratingLocked","ratingExpired","ratingFailed","rating1","rating2","rating3","rating4","rating5","procedureSend","procedureSent","procedureShareDetails","procedureDetailsSent","procedureHide","procedureFieldCount","procedureFieldCountOne","procedureTitle","procedureEmailPlaceholder","procedurePhonePlaceholder","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","notificationReplyFrom","notificationNewReply","notificationAttachment","notificationOpenHint","postFrom","postNewMessage","postOpenHint","postClose","postMinimize","postReplyPlaceholder","postSend","postSent","postReplyFailed","postReactions","postThanks","postConversation","postContinueChat","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","blockSubtotal","blockDiscount","blockTax","blockShipping","blockTotal","blockMinutes","blockSave","blockAnyAvailable","blockWithProvider","blockBookTime","blockValidUntil","launcherOpen","launcherClose","formatLabel","template","values","replace","match","String","buildLabels","labels","Object","keys"],"sourceRoot":"../../src","sources":["i18n.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_locales","require","createTranslator","config","locale","defaultLocale","active","baseLanguage","fallbackLocale","key","fallback","translations","BUNDLED_TRANSLATIONS","WELCOME_TEXT_KEYS","localizeWelcomeText","translate","localized","forEach","DEFAULT_LABELS","exports","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","attachPhotoLibrary","attachTakePhoto","attachChooseFile","removeAttachment","attachmentTooLarge","attachmentTooMany","attachmentsTooLargeTogether","attachmentFailed","openAttachment","voicePlay","voicePause","voiceSpeed","imageLoadFailed","openImageExternally","cameraPermissionDenied","cancel","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","messageDeleted","messageSent","messageSeen","waitingForTeammate","joinedConversation","ratingQuestion","ratingReasonPrompt","ratingCommentPlaceholder","ratingSubmit","ratingDone","ratingThanks","ratingLocked","ratingExpired","ratingFailed","rating1","rating2","rating3","rating4","rating5","procedureSend","procedureSent","procedureShareDetails","procedureDetailsSent","procedureHide","procedureFieldCount","procedureFieldCountOne","procedureTitle","procedureEmailPlaceholder","procedurePhonePlaceholder","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","notificationReplyFrom","notificationNewReply","notificationAttachment","notificationOpenHint","postFrom","postNewMessage","postOpenHint","postClose","postMinimize","postReplyPlaceholder","postSend","postSent","postReplyFailed","postReactions","postThanks","postConversation","postContinueChat","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","blockSubtotal","blockDiscount","blockTax","blockShipping","blockTotal","blockMinutes","blockSave","blockAnyAvailable","blockWithProvider","blockBookTime","blockValidUntil","launcherOpen","launcherClose","formatLabel","template","values","replace","match","String","buildLabels","labels","Object","keys"],"sourceRoot":"../../src","sources":["i18n.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/locales.js
CHANGED
|
@@ -32,6 +32,10 @@ const ar = {
|
|
|
32
32
|
attachmentTooMany: 'يمكنك إرفاق {count} ملفات كحد أقصى',
|
|
33
33
|
attachmentsTooLargeTogether: 'المرفقات كبيرة جدًا لإرسالها معًا — أرسل بعضها في رسالة أخرى',
|
|
34
34
|
attachmentFailed: 'تعذر إرفاق هذا الملف',
|
|
35
|
+
openAttachment: 'فتح {name}',
|
|
36
|
+
voicePlay: 'تشغيل الرسالة الصوتية',
|
|
37
|
+
voicePause: 'إيقاف الرسالة الصوتية مؤقتًا',
|
|
38
|
+
voiceSpeed: 'سرعة التشغيل',
|
|
35
39
|
imageLoadFailed: 'تعذر تحميل هذه الصورة',
|
|
36
40
|
openImageExternally: 'فتح الصورة',
|
|
37
41
|
cameraPermissionDenied: 'اسمح بالوصول إلى الكاميرا من الإعدادات لالتقاط صورة',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ar","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","attachPhotoLibrary","attachTakePhoto","attachChooseFile","removeAttachment","attachmentTooLarge","attachmentTooMany","attachmentsTooLargeTogether","attachmentFailed","imageLoadFailed","openImageExternally","cameraPermissionDenied","cancel","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","messageDeleted","messageSent","messageSeen","waitingForTeammate","joinedConversation","ratingQuestion","ratingReasonPrompt","ratingCommentPlaceholder","ratingSubmit","ratingDone","ratingThanks","ratingLocked","ratingExpired","ratingFailed","rating1","rating2","rating3","rating4","rating5","procedureSend","procedureSent","procedureShareDetails","procedureDetailsSent","procedureHide","procedureFieldCount","procedureFieldCountOne","procedureTitle","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","notificationReplyFrom","notificationNewReply","notificationAttachment","notificationOpenHint","postFrom","postNewMessage","postOpenHint","postClose","postMinimize","postReplyPlaceholder","postSend","postSent","postReplyFailed","postReactions","postThanks","postConversation","postContinueChat","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","blockSubtotal","blockDiscount","blockTax","blockShipping","blockTotal","blockMinutes","blockSave","blockAnyAvailable","blockWithProvider","blockBookTime","blockValidUntil","launcherOpen","launcherClose","BUNDLED_TRANSLATIONS","exports","baseLanguage","locale","split","toLowerCase"],"sourceRoot":"../../src","sources":["locales.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["ar","back","loading","loadEarlier","emptyConversation","messagePlaceholder","attachFile","attachPhotoLibrary","attachTakePhoto","attachChooseFile","removeAttachment","attachmentTooLarge","attachmentTooMany","attachmentsTooLargeTogether","attachmentFailed","openAttachment","voicePlay","voicePause","voiceSpeed","imageLoadFailed","openImageExternally","cameraPermissionDenied","cancel","failedToSend","thinking","messages","noMessages","historyHidden","startBelow","preChatTitle","preChatSubtitle","preChatSkip","preChatSubmit","viewPreviousConversations","homeRecentTitle","homeViewAllCount","homeNoConversations","homeStatusOnline","homeStatusAway","unreadBadge","team","home","close","retry","connectionError","connecting","chatUnavailable","identityVerificationError","widgetCrashed","timeJustNow","timeMinutes","timeHours","timeDays","timeMonths","timeYears","today","yesterday","conversationUpdated","messageDeleted","messageSent","messageSeen","waitingForTeammate","joinedConversation","ratingQuestion","ratingReasonPrompt","ratingCommentPlaceholder","ratingSubmit","ratingDone","ratingThanks","ratingLocked","ratingExpired","ratingFailed","rating1","rating2","rating3","rating4","rating5","procedureSend","procedureSent","procedureShareDetails","procedureDetailsSent","procedureHide","procedureFieldCount","procedureFieldCountOne","procedureTitle","fieldRequired","invalidEmail","working","outboundTitle","outboundCta","dismiss","notificationReplyFrom","notificationNewReply","notificationAttachment","notificationOpenHint","postFrom","postNewMessage","postOpenHint","postClose","postMinimize","postReplyPlaceholder","postSend","postSent","postReplyFailed","postReactions","postThanks","postConversation","postContinueChat","blockService","blockProduct","blockChooseTime","blockProfessional","blockPriceOffer","blockSubtotal","blockDiscount","blockTax","blockShipping","blockTotal","blockMinutes","blockSave","blockAnyAvailable","blockWithProvider","blockBookTime","blockValidUntil","launcherOpen","launcherClose","BUNDLED_TRANSLATIONS","exports","baseLanguage","locale","split","toLowerCase"],"sourceRoot":"../../src","sources":["locales.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.shallowEqual = shallowEqual;
|
|
7
|
+
exports.useWidgetSelector = useWidgetSelector;
|
|
6
8
|
exports.useWidgetState = useWidgetState;
|
|
7
9
|
exports.useWidgetStore = useWidgetStore;
|
|
8
10
|
var _react = require("react");
|
|
@@ -20,4 +22,33 @@ function useWidgetState() {
|
|
|
20
22
|
function useWidgetStore() {
|
|
21
23
|
return _controller.controller.store;
|
|
22
24
|
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A slice of the state that re-renders only when the slice changes (by
|
|
28
|
+
* `isEqual`) — for UI that lives on the host's own screens, like the launcher,
|
|
29
|
+
* which shouldn't redraw on every message or typing event. Internal.
|
|
30
|
+
*/
|
|
31
|
+
function useWidgetSelector(select, isEqual) {
|
|
32
|
+
const store = _controller.controller.store;
|
|
33
|
+
const last = (0, _react.useRef)(null);
|
|
34
|
+
const getSnapshot = () => {
|
|
35
|
+
const state = store.getState();
|
|
36
|
+
const previous = last.current;
|
|
37
|
+
if (previous && previous.state === state) return previous.value;
|
|
38
|
+
const value = select(state);
|
|
39
|
+
// Same slice from a newer state: keep the old value so React bails out.
|
|
40
|
+
last.current = {
|
|
41
|
+
state,
|
|
42
|
+
value: previous && isEqual(previous.value, value) ? previous.value : value
|
|
43
|
+
};
|
|
44
|
+
return last.current.value;
|
|
45
|
+
};
|
|
46
|
+
return (0, _react.useSyncExternalStore)(store.subscribe, getSnapshot, getSnapshot);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Same keys, same values (by identity). */
|
|
50
|
+
function shallowEqual(previous, next) {
|
|
51
|
+
const keys = Object.keys(previous);
|
|
52
|
+
return keys.length === Object.keys(next).length && keys.every(key => Object.is(previous[key], next[key]));
|
|
53
|
+
}
|
|
23
54
|
//# sourceMappingURL=use-widget-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_controller","useWidgetState","store","controller","useSyncExternalStore","subscribe","getState","useWidgetStore"],"sourceRoot":"../../../src","sources":["state/use-widget-state.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_controller","useWidgetState","store","controller","useSyncExternalStore","subscribe","getState","useWidgetStore","useWidgetSelector","select","isEqual","last","useRef","getSnapshot","state","previous","current","value","shallowEqual","next","keys","Object","length","every","key","is"],"sourceRoot":"../../../src","sources":["state/use-widget-state.ts"],"mappings":";;;;;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AARA;AACA;AACA;AACA;AACA;;AAQO,SAASE,cAAcA,CAAA,EAAgB;EAC5C,MAAMC,KAAK,GAAGC,sBAAU,CAACD,KAAK;EAC9B,OAAO,IAAAE,2BAAoB,EAACF,KAAK,CAACG,SAAS,EAAEH,KAAK,CAACI,QAAQ,EAAEJ,KAAK,CAACI,QAAQ,CAAC;AAC9E;AAEO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,OAAOJ,sBAAU,CAACD,KAAK;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,iBAAiBA,CAC/BC,MAAiC,EACjCC,OAA0C,EACvC;EACH,MAAMR,KAAK,GAAGC,sBAAU,CAACD,KAAK;EAC9B,MAAMS,IAAI,GAAG,IAAAC,aAAM,EAA0C,IAAI,CAAC;EAClE,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,MAAMC,KAAK,GAAGZ,KAAK,CAACI,QAAQ,CAAC,CAAC;IAC9B,MAAMS,QAAQ,GAAGJ,IAAI,CAACK,OAAO;IAC7B,IAAID,QAAQ,IAAIA,QAAQ,CAACD,KAAK,KAAKA,KAAK,EAAE,OAAOC,QAAQ,CAACE,KAAK;IAC/D,MAAMA,KAAK,GAAGR,MAAM,CAACK,KAAK,CAAC;IAC3B;IACAH,IAAI,CAACK,OAAO,GAAG;MAAEF,KAAK;MAAEG,KAAK,EAAEF,QAAQ,IAAIL,OAAO,CAACK,QAAQ,CAACE,KAAK,EAAEA,KAAK,CAAC,GAAGF,QAAQ,CAACE,KAAK,GAAGA;IAAM,CAAC;IACpG,OAAON,IAAI,CAACK,OAAO,CAACC,KAAK;EAC3B,CAAC;EACD,OAAO,IAAAb,2BAAoB,EAACF,KAAK,CAACG,SAAS,EAAEQ,WAAW,EAAEA,WAAW,CAAC;AACxE;;AAEA;AACO,SAASK,YAAYA,CAAoCH,QAAW,EAAEI,IAAO,EAAW;EAC7F,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACL,QAAQ,CAAC;EAClC,OAAOK,IAAI,CAACE,MAAM,KAAKD,MAAM,CAACD,IAAI,CAACD,IAAI,CAAC,CAACG,MAAM,IAAIF,IAAI,CAACG,KAAK,CAAEC,GAAG,IAAKH,MAAM,CAACI,EAAE,CAACV,QAAQ,CAACS,GAAG,CAAC,EAAEL,IAAI,CAACK,GAAG,CAAC,CAAC,CAAC;AAC7G","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ var _safeUrl = require("../ui/utils/safe-url.js");
|
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
27
|
/** Sent on every init; must match `package.json` (tests/version.test.js checks). */
|
|
28
|
-
const SDK_VERSION = '@repzo/widget-react-native@1.2.
|
|
28
|
+
const SDK_VERSION = '@repzo/widget-react-native@1.2.2';
|
|
29
29
|
|
|
30
30
|
/** The platform this session reports — mobile sessions get the Mobile SDKs overrides. */
|
|
31
31
|
function sessionPlatform() {
|
|
@@ -46,6 +46,13 @@ const LOGOUT_REQUEST_TIMEOUT_MS = 5_000;
|
|
|
46
46
|
const STREAM_REAUTH_MIN_INTERVAL_MS = 30_000;
|
|
47
47
|
/** Live replies in the open thread advance the server read cursor, batched. */
|
|
48
48
|
const MARK_READ_DEBOUNCE_MS = 1_000;
|
|
49
|
+
/**
|
|
50
|
+
* Back from the background sooner than this, availability and the post are
|
|
51
|
+
* still current enough to skip re-asking. Reps hop to maps or the camera and
|
|
52
|
+
* back all day; the list and the open thread still catch up every time, since
|
|
53
|
+
* the stream was closed meanwhile.
|
|
54
|
+
*/
|
|
55
|
+
const FOREGROUND_REFRESH_AFTER_MS = 5 * 60_000;
|
|
49
56
|
/** Live events held back while a draft's first send is creating its thread. */
|
|
50
57
|
const DRAFT_EVENT_BUFFER_LIMIT = 50;
|
|
51
58
|
/** How long a post stays up after a reaction, thanking them, before it goes. */
|
|
@@ -165,6 +172,9 @@ class WidgetStore {
|
|
|
165
172
|
userKeyLoaded = false;
|
|
166
173
|
pendingConversationId = null;
|
|
167
174
|
appStateSubscription = null;
|
|
175
|
+
|
|
176
|
+
/** When the app last went to the background (0: hasn't this session). */
|
|
177
|
+
backgroundedAt = 0;
|
|
168
178
|
lastTypingPingAt = 0;
|
|
169
179
|
visitorTypingActive = false;
|
|
170
180
|
seenMessageIds = [];
|
|
@@ -842,10 +852,14 @@ class WidgetStore {
|
|
|
842
852
|
}
|
|
843
853
|
watchAppState() {
|
|
844
854
|
if (this.appStateSubscription) return;
|
|
855
|
+
// Booted while already in the background (a push woke the app): coming
|
|
856
|
+
// to the foreground is a return from the background too.
|
|
857
|
+
if (_reactNative.AppState.currentState === 'background') this.backgroundedAt = Date.now();
|
|
845
858
|
this.appStateSubscription = _reactNative.AppState.addEventListener('change', status => {
|
|
846
859
|
if (status === 'active') {
|
|
847
860
|
void this.resumeFromBackground();
|
|
848
861
|
} else if (status === 'background') {
|
|
862
|
+
this.backgroundedAt = Date.now();
|
|
849
863
|
this.realtime.close();
|
|
850
864
|
}
|
|
851
865
|
});
|
|
@@ -858,6 +872,12 @@ class WidgetStore {
|
|
|
858
872
|
if (this.state.error) await this.retry();
|
|
859
873
|
return;
|
|
860
874
|
}
|
|
875
|
+
// Only the background closes the stream. Back from merely inactive (a
|
|
876
|
+
// system sheet, Face ID, the notification shade) it never stopped, so
|
|
877
|
+
// there is nothing to catch up on.
|
|
878
|
+
if (!this.backgroundedAt) return;
|
|
879
|
+
const awayMs = Date.now() - this.backgroundedAt;
|
|
880
|
+
this.backgroundedAt = 0;
|
|
861
881
|
const epoch = this.epoch;
|
|
862
882
|
const token = await this.client.getToken();
|
|
863
883
|
if (!token || this.isStale(epoch)) return;
|
|
@@ -865,6 +885,7 @@ class WidgetStore {
|
|
|
865
885
|
// The stream had a gap: refresh the list so unread/snippets are correct,
|
|
866
886
|
// and the thread on screen so replies sent meanwhile show up.
|
|
867
887
|
await Promise.all([this.refreshConversations(), this.refreshOpenThread()]);
|
|
888
|
+
if (awayMs < FOREGROUND_REFRESH_AFTER_MS) return;
|
|
868
889
|
await this.refreshConfig();
|
|
869
890
|
// A post may have gone live (or ended) while the app was away.
|
|
870
891
|
if (!this.isStale(epoch)) this.loadPost();
|