@appsupportkit/support-sdk 0.2.0 → 0.4.0
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/lib/commonjs/api.js +61 -12
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +1 -1
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/LauncherButton.js +4 -4
- package/lib/commonjs/components/LauncherButton.js.map +1 -1
- package/lib/commonjs/components/SupportButton.js +192 -66
- package/lib/commonjs/components/SupportButton.js.map +1 -1
- package/lib/commonjs/components/icons.js +117 -110
- package/lib/commonjs/components/icons.js.map +1 -1
- package/lib/commonjs/components/primitives.js +3 -154
- package/lib/commonjs/components/primitives.js.map +1 -1
- package/lib/commonjs/components/screens/ChatScreen.js +487 -0
- package/lib/commonjs/components/screens/ChatScreen.js.map +1 -0
- package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
- package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
- package/lib/commonjs/i18n/index.js +101 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/languages.js +95 -0
- package/lib/commonjs/i18n/languages.js.map +1 -0
- package/lib/commonjs/i18n/strings/de.js +75 -0
- package/lib/commonjs/i18n/strings/de.js.map +1 -0
- package/lib/commonjs/i18n/strings/en.js +91 -0
- package/lib/commonjs/i18n/strings/en.js.map +1 -0
- package/lib/commonjs/i18n/strings/es.js +75 -0
- package/lib/commonjs/i18n/strings/es.js.map +1 -0
- package/lib/commonjs/i18n/strings/fr.js +75 -0
- package/lib/commonjs/i18n/strings/fr.js.map +1 -0
- package/lib/commonjs/i18n/strings/hi.js +75 -0
- package/lib/commonjs/i18n/strings/hi.js.map +1 -0
- package/lib/commonjs/i18n/strings/it.js +75 -0
- package/lib/commonjs/i18n/strings/it.js.map +1 -0
- package/lib/commonjs/i18n/strings/ja.js +75 -0
- package/lib/commonjs/i18n/strings/ja.js.map +1 -0
- package/lib/commonjs/i18n/strings/ko.js +75 -0
- package/lib/commonjs/i18n/strings/ko.js.map +1 -0
- package/lib/commonjs/i18n/strings/nl.js +75 -0
- package/lib/commonjs/i18n/strings/nl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pl.js +75 -0
- package/lib/commonjs/i18n/strings/pl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pt.js +75 -0
- package/lib/commonjs/i18n/strings/pt.js.map +1 -0
- package/lib/commonjs/i18n/strings/ru.js +75 -0
- package/lib/commonjs/i18n/strings/ru.js.map +1 -0
- package/lib/commonjs/i18n/strings/tr.js +75 -0
- package/lib/commonjs/i18n/strings/tr.js.map +1 -0
- package/lib/commonjs/i18n/strings/zh.js +75 -0
- package/lib/commonjs/i18n/strings/zh.js.map +1 -0
- package/lib/commonjs/index.js +38 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/push.js +78 -3
- package/lib/commonjs/push.js.map +1 -1
- package/lib/commonjs/review.js +54 -0
- package/lib/commonjs/review.js.map +1 -0
- package/lib/commonjs/theme.js +142 -23
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/types.js +32 -3
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useSupportThreads.js +41 -24
- package/lib/commonjs/useSupportThreads.js.map +1 -1
- package/lib/commonjs/utils.js +25 -30
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/version.js +13 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/api.js +57 -10
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BottomSheet.js +1 -1
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/LauncherButton.js +5 -5
- package/lib/module/components/LauncherButton.js.map +1 -1
- package/lib/module/components/SupportButton.js +199 -73
- package/lib/module/components/SupportButton.js.map +1 -1
- package/lib/module/components/icons.js +115 -107
- package/lib/module/components/icons.js.map +1 -1
- package/lib/module/components/primitives.js +5 -147
- package/lib/module/components/primitives.js.map +1 -1
- package/lib/module/components/screens/ChatScreen.js +485 -0
- package/lib/module/components/screens/ChatScreen.js.map +1 -0
- package/lib/module/components/screens/LanguageScreen.js +147 -0
- package/lib/module/components/screens/LanguageScreen.js.map +1 -0
- package/lib/module/i18n/index.js +56 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/languages.js +88 -0
- package/lib/module/i18n/languages.js.map +1 -0
- package/lib/module/i18n/strings/de.js +71 -0
- package/lib/module/i18n/strings/de.js.map +1 -0
- package/lib/module/i18n/strings/en.js +87 -0
- package/lib/module/i18n/strings/en.js.map +1 -0
- package/lib/module/i18n/strings/es.js +71 -0
- package/lib/module/i18n/strings/es.js.map +1 -0
- package/lib/module/i18n/strings/fr.js +71 -0
- package/lib/module/i18n/strings/fr.js.map +1 -0
- package/lib/module/i18n/strings/hi.js +71 -0
- package/lib/module/i18n/strings/hi.js.map +1 -0
- package/lib/module/i18n/strings/it.js +71 -0
- package/lib/module/i18n/strings/it.js.map +1 -0
- package/lib/module/i18n/strings/ja.js +71 -0
- package/lib/module/i18n/strings/ja.js.map +1 -0
- package/lib/module/i18n/strings/ko.js +71 -0
- package/lib/module/i18n/strings/ko.js.map +1 -0
- package/lib/module/i18n/strings/nl.js +71 -0
- package/lib/module/i18n/strings/nl.js.map +1 -0
- package/lib/module/i18n/strings/pl.js +71 -0
- package/lib/module/i18n/strings/pl.js.map +1 -0
- package/lib/module/i18n/strings/pt.js +71 -0
- package/lib/module/i18n/strings/pt.js.map +1 -0
- package/lib/module/i18n/strings/ru.js +71 -0
- package/lib/module/i18n/strings/ru.js.map +1 -0
- package/lib/module/i18n/strings/tr.js +71 -0
- package/lib/module/i18n/strings/tr.js.map +1 -0
- package/lib/module/i18n/strings/zh.js +71 -0
- package/lib/module/i18n/strings/zh.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/push.js +77 -3
- package/lib/module/push.js.map +1 -1
- package/lib/module/review.js +48 -0
- package/lib/module/review.js.map +1 -0
- package/lib/module/theme.js +141 -23
- package/lib/module/theme.js.map +1 -1
- package/lib/module/types.js +32 -3
- package/lib/module/types.js.map +1 -1
- package/lib/module/useSupportThreads.js +41 -24
- package/lib/module/useSupportThreads.js.map +1 -1
- package/lib/module/utils.js +24 -29
- package/lib/module/utils.js.map +1 -1
- package/lib/module/version.js +9 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/api.d.ts +40 -10
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/SupportButton.d.ts +2 -2
- package/lib/typescript/components/SupportButton.d.ts.map +1 -1
- package/lib/typescript/components/icons.d.ts +10 -14
- package/lib/typescript/components/icons.d.ts.map +1 -1
- package/lib/typescript/components/primitives.d.ts +3 -30
- package/lib/typescript/components/primitives.d.ts.map +1 -1
- package/lib/typescript/components/screens/ChatScreen.d.ts +21 -0
- package/lib/typescript/components/screens/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
- package/lib/typescript/i18n/index.d.ts +15 -0
- package/lib/typescript/i18n/index.d.ts.map +1 -0
- package/lib/typescript/i18n/languages.d.ts +36 -0
- package/lib/typescript/i18n/languages.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/de.d.ts +3 -0
- package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/en.d.ts +86 -0
- package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/es.d.ts +3 -0
- package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/fr.d.ts +3 -0
- package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/hi.d.ts +3 -0
- package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/it.d.ts +3 -0
- package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ja.d.ts +3 -0
- package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ko.d.ts +3 -0
- package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/nl.d.ts +3 -0
- package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pl.d.ts +3 -0
- package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pt.d.ts +3 -0
- package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ru.d.ts +3 -0
- package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/tr.d.ts +3 -0
- package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/zh.d.ts +3 -0
- package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/push.d.ts +14 -2
- package/lib/typescript/push.d.ts.map +1 -1
- package/lib/typescript/review.d.ts +15 -0
- package/lib/typescript/review.d.ts.map +1 -0
- package/lib/typescript/theme.d.ts +23 -5
- package/lib/typescript/theme.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +86 -13
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/useSupportThreads.d.ts +20 -4
- package/lib/typescript/useSupportThreads.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +8 -6
- package/lib/typescript/utils.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +7 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/api.ts +75 -23
- package/src/components/BottomSheet.tsx +1 -1
- package/src/components/LauncherButton.tsx +4 -4
- package/src/components/SupportButton.tsx +244 -86
- package/src/components/icons.tsx +96 -101
- package/src/components/primitives.tsx +9 -161
- package/src/components/screens/ChatScreen.tsx +541 -0
- package/src/components/screens/LanguageScreen.tsx +172 -0
- package/src/i18n/index.ts +81 -0
- package/src/i18n/languages.ts +106 -0
- package/src/i18n/strings/de.ts +81 -0
- package/src/i18n/strings/en.ts +97 -0
- package/src/i18n/strings/es.ts +80 -0
- package/src/i18n/strings/fr.ts +81 -0
- package/src/i18n/strings/hi.ts +80 -0
- package/src/i18n/strings/it.ts +80 -0
- package/src/i18n/strings/ja.ts +80 -0
- package/src/i18n/strings/ko.ts +79 -0
- package/src/i18n/strings/nl.ts +80 -0
- package/src/i18n/strings/pl.ts +80 -0
- package/src/i18n/strings/pt.ts +80 -0
- package/src/i18n/strings/ru.ts +80 -0
- package/src/i18n/strings/tr.ts +80 -0
- package/src/i18n/strings/zh.ts +78 -0
- package/src/index.tsx +13 -0
- package/src/push.ts +100 -2
- package/src/review.ts +54 -0
- package/src/theme.ts +182 -28
- package/src/types.ts +85 -13
- package/src/useSupportThreads.ts +61 -28
- package/src/utils.ts +27 -29
- package/src/version.ts +6 -0
- package/lib/commonjs/components/screens/ComposeScreen.js +0 -228
- package/lib/commonjs/components/screens/ComposeScreen.js.map +0 -1
- package/lib/commonjs/components/screens/HomeScreen.js +0 -286
- package/lib/commonjs/components/screens/HomeScreen.js.map +0 -1
- package/lib/commonjs/components/screens/ThreadScreen.js +0 -327
- package/lib/commonjs/components/screens/ThreadScreen.js.map +0 -1
- package/lib/module/components/screens/ComposeScreen.js +0 -224
- package/lib/module/components/screens/ComposeScreen.js.map +0 -1
- package/lib/module/components/screens/HomeScreen.js +0 -282
- package/lib/module/components/screens/HomeScreen.js.map +0 -1
- package/lib/module/components/screens/ThreadScreen.js +0 -325
- package/lib/module/components/screens/ThreadScreen.js.map +0 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts +0 -10
- package/lib/typescript/components/screens/ComposeScreen.d.ts.map +0 -1
- package/lib/typescript/components/screens/HomeScreen.d.ts +0 -14
- package/lib/typescript/components/screens/HomeScreen.d.ts.map +0 -1
- package/lib/typescript/components/screens/ThreadScreen.d.ts +0 -10
- package/lib/typescript/components/screens/ThreadScreen.d.ts.map +0 -1
- package/src/components/screens/ComposeScreen.tsx +0 -233
- package/src/components/screens/HomeScreen.tsx +0 -287
- package/src/components/screens/ThreadScreen.tsx +0 -397
|
@@ -19,11 +19,11 @@ import { AppState } from 'react-native';
|
|
|
19
19
|
import { getThreads, getUnreadCount, markRead, SupportApiError } from './api';
|
|
20
20
|
import { latestAdminMessageAt, pruneWatermarks, reconcileThreads, sumUnread } from './unread';
|
|
21
21
|
|
|
22
|
-
// Poll cadence by context: fast where latency is felt (
|
|
22
|
+
// Poll cadence by context: fast where latency is felt (looking at the chat,
|
|
23
23
|
// waiting for a reply), slow when the sheet is closed — and the idle tick
|
|
24
24
|
// uses the count-only endpoint, so it costs ~18 bytes instead of the full
|
|
25
25
|
// thread list.
|
|
26
|
-
const
|
|
26
|
+
const CHAT_POLL_MS = 5_000;
|
|
27
27
|
const SHEET_POLL_MS = 15_000;
|
|
28
28
|
export const IDLE_POLL_MS = 60_000;
|
|
29
29
|
const MIN_POLL_MS = 3_000;
|
|
@@ -39,33 +39,40 @@ const MARK_READ_BACKOFF_MS = 1_500;
|
|
|
39
39
|
* an integration mistake — the end user retrying forever won't fix a key
|
|
40
40
|
* that doesn't match the app — so the real cause is logged for whoever is
|
|
41
41
|
* running the build instead of hidden behind "couldn't load".
|
|
42
|
+
*
|
|
43
|
+
* Returns a key rather than a message: the hook has no business knowing what
|
|
44
|
+
* language the sheet is in, and resolving it here would make every callback
|
|
45
|
+
* depend on the translator.
|
|
42
46
|
*/
|
|
43
|
-
function
|
|
47
|
+
function loadErrorKey(e) {
|
|
44
48
|
if (e instanceof SupportApiError) {
|
|
45
|
-
if (e.offline) return
|
|
49
|
+
if (e.offline) return 'error.offline';
|
|
46
50
|
if (e.status === 401 || e.status === 403) {
|
|
47
51
|
if (__DEV__) {
|
|
48
52
|
console.error('SupportButton: the support API rejected this app (401). Check that ' + '`apiKey` is the key shown when the app was registered and that ' + '`appName` matches that app exactly.');
|
|
49
53
|
}
|
|
50
|
-
return '
|
|
54
|
+
return 'error.unavailable';
|
|
51
55
|
}
|
|
52
|
-
if (e.status === 429) return '
|
|
56
|
+
if (e.status === 429) return 'error.loadRateLimited';
|
|
53
57
|
}
|
|
54
|
-
return
|
|
58
|
+
return 'error.loadFailed';
|
|
55
59
|
}
|
|
56
60
|
export function useSupportThreads({
|
|
57
61
|
config,
|
|
58
62
|
revenuecatId,
|
|
59
63
|
enabled,
|
|
60
64
|
sheetOpen,
|
|
61
|
-
|
|
65
|
+
chatVisible,
|
|
62
66
|
idlePollMs
|
|
63
67
|
}) {
|
|
64
68
|
const [threads, setThreads] = useState(null);
|
|
65
69
|
const [totalUnread, setTotalUnread] = useState(0);
|
|
66
70
|
const [loading, setLoading] = useState(false);
|
|
67
71
|
const [refreshing, setRefreshing] = useState(false);
|
|
68
|
-
const [
|
|
72
|
+
const [errorKey, setErrorKey] = useState(null);
|
|
73
|
+
const [serverLanguage, setServerLanguage] = useState(null);
|
|
74
|
+
const [languageLoaded, setLanguageLoaded] = useState(false);
|
|
75
|
+
const [store, setStore] = useState(null);
|
|
69
76
|
const mounted = useRef(true);
|
|
70
77
|
/** Last server payload, before local read reconciliation. */
|
|
71
78
|
const rawThreads = useRef(null);
|
|
@@ -74,10 +81,10 @@ export function useSupportThreads({
|
|
|
74
81
|
const requestSeq = useRef(0);
|
|
75
82
|
const appliedSeq = useRef(0);
|
|
76
83
|
const readEpoch = useRef(0);
|
|
77
|
-
const
|
|
84
|
+
const chatVisibleRef = useRef(chatVisible);
|
|
78
85
|
useEffect(() => {
|
|
79
|
-
|
|
80
|
-
}, [
|
|
86
|
+
chatVisibleRef.current = chatVisible;
|
|
87
|
+
}, [chatVisible]);
|
|
81
88
|
useEffect(() => {
|
|
82
89
|
mounted.current = true;
|
|
83
90
|
const timers = reads.current;
|
|
@@ -169,6 +176,11 @@ export function useSupportThreads({
|
|
|
169
176
|
}
|
|
170
177
|
sendRead(threadId);
|
|
171
178
|
}, [publish, sendRead]);
|
|
179
|
+
|
|
180
|
+
/** Marks every conversation read — the chat shows them all at once. */
|
|
181
|
+
const markAllRead = useCallback(() => {
|
|
182
|
+
for (const thread of rawThreads.current ?? []) markThreadRead(thread.id);
|
|
183
|
+
}, [markThreadRead]);
|
|
172
184
|
const fetchThreads = useCallback(async mode => {
|
|
173
185
|
if (!enabled) return;
|
|
174
186
|
const seq = requestSeq.current += 1;
|
|
@@ -187,25 +199,27 @@ export function useSupportThreads({
|
|
|
187
199
|
appliedSeq.current = seq;
|
|
188
200
|
rawThreads.current = data.threads;
|
|
189
201
|
watermarks.current = pruneWatermarks(watermarks.current, data.threads);
|
|
190
|
-
|
|
202
|
+
setErrorKey(null);
|
|
203
|
+
setServerLanguage(data.language);
|
|
204
|
+
setLanguageLoaded(true);
|
|
205
|
+
setStore(data.store ?? null);
|
|
191
206
|
publish();
|
|
192
207
|
|
|
193
|
-
// Replies that arrived while the user is
|
|
208
|
+
// Replies that arrived while the user is looking at the chat are
|
|
194
209
|
// read on arrival — otherwise the badge climbed while they read.
|
|
195
|
-
|
|
196
|
-
if (active !== null) markThreadRead(active);
|
|
210
|
+
if (chatVisibleRef.current) markAllRead();
|
|
197
211
|
flushReads();
|
|
198
212
|
} catch (e) {
|
|
199
213
|
if (!mounted.current) return;
|
|
200
214
|
// A failed background poll must not blow away cached threads.
|
|
201
|
-
if (rawThreads.current === null)
|
|
215
|
+
if (rawThreads.current === null) setErrorKey(loadErrorKey(e));
|
|
202
216
|
} finally {
|
|
203
217
|
if (mounted.current) {
|
|
204
218
|
if (spinner) setRefreshing(false);
|
|
205
219
|
if (skeleton) setLoading(false);
|
|
206
220
|
}
|
|
207
221
|
}
|
|
208
|
-
}, [config, enabled, revenuecatId, publish,
|
|
222
|
+
}, [config, enabled, revenuecatId, publish, markAllRead, flushReads]);
|
|
209
223
|
|
|
210
224
|
/** Badge-only refresh — the cheap endpoint, used while idle. */
|
|
211
225
|
const fetchCount = useCallback(async () => {
|
|
@@ -236,17 +250,17 @@ export function useSupportThreads({
|
|
|
236
250
|
if (sheetOpen) void fetchThreads('background');
|
|
237
251
|
}, [sheetOpen, fetchThreads]);
|
|
238
252
|
|
|
239
|
-
// Opening
|
|
253
|
+
// Opening the chat marks everything read immediately, before the next poll.
|
|
240
254
|
useEffect(() => {
|
|
241
|
-
if (
|
|
242
|
-
}, [
|
|
255
|
+
if (chatVisible) markAllRead();
|
|
256
|
+
}, [chatVisible, markAllRead]);
|
|
243
257
|
|
|
244
258
|
// Cadence follows what the user is looking at; the app returning to the
|
|
245
259
|
// foreground always ticks.
|
|
246
260
|
useEffect(() => {
|
|
247
261
|
if (!enabled) return;
|
|
248
262
|
const idle = !sheetOpen;
|
|
249
|
-
const intervalMs = idle ? idlePollMs :
|
|
263
|
+
const intervalMs = idle ? idlePollMs : chatVisible ? CHAT_POLL_MS : SHEET_POLL_MS;
|
|
250
264
|
const tick = () => {
|
|
251
265
|
// While a receipt is unconfirmed the count-only endpoint would report
|
|
252
266
|
// replies the user has already read, so pay for the full payload.
|
|
@@ -263,7 +277,7 @@ export function useSupportThreads({
|
|
|
263
277
|
if (timer !== null) clearInterval(timer);
|
|
264
278
|
appStateSub.remove();
|
|
265
279
|
};
|
|
266
|
-
}, [enabled, sheetOpen,
|
|
280
|
+
}, [enabled, sheetOpen, chatVisible, idlePollMs, fetchThreads, fetchCount]);
|
|
267
281
|
const refresh = useCallback(() => {
|
|
268
282
|
void fetchThreads('user');
|
|
269
283
|
}, [fetchThreads]);
|
|
@@ -273,7 +287,10 @@ export function useSupportThreads({
|
|
|
273
287
|
totalUnread,
|
|
274
288
|
loading,
|
|
275
289
|
refreshing,
|
|
276
|
-
|
|
290
|
+
errorKey,
|
|
291
|
+
serverLanguage,
|
|
292
|
+
languageLoaded,
|
|
293
|
+
store,
|
|
277
294
|
refresh,
|
|
278
295
|
reload
|
|
279
296
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","AppState","getThreads","getUnreadCount","markRead","SupportApiError","latestAdminMessageAt","pruneWatermarks","reconcileThreads","sumUnread","THREAD_POLL_MS","SHEET_POLL_MS","IDLE_POLL_MS","MIN_POLL_MS","MARK_READ_MAX_ATTEMPTS","MARK_READ_BACKOFF_MS","loadErrorMessage","e","offline","status","__DEV__","console","error","useSupportThreads","config","revenuecatId","enabled","sheetOpen","activeThreadId","idlePollMs","threads","setThreads","totalUnread","setTotalUnread","loading","setLoading","refreshing","setRefreshing","setError","mounted","rawThreads","watermarks","Map","reads","requestSeq","appliedSeq","readEpoch","activeThreadIdRef","current","timers","attempt","values","timer","clearTimeout","clear","publish","raw","reconciled","sendRead","threadId","get","inFlight","covers","target","queryId","then","attempts","delete","catch","setTimeout","flushReads","markThreadRead","thread","find","t","id","latest","set","fetchThreads","mode","seq","blank","spinner","skeleton","data","active","fetchCount","epoch","total_unread","idle","intervalMs","tick","size","setInterval","Math","max","appStateSub","addEventListener","state","clearInterval","remove","refresh","reload"],"sourceRoot":"../../src","sources":["useSupportThreads.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","AppState","getThreads","getUnreadCount","markRead","SupportApiError","latestAdminMessageAt","pruneWatermarks","reconcileThreads","sumUnread","CHAT_POLL_MS","SHEET_POLL_MS","IDLE_POLL_MS","MIN_POLL_MS","MARK_READ_MAX_ATTEMPTS","MARK_READ_BACKOFF_MS","loadErrorKey","e","offline","status","__DEV__","console","error","useSupportThreads","config","revenuecatId","enabled","sheetOpen","chatVisible","idlePollMs","threads","setThreads","totalUnread","setTotalUnread","loading","setLoading","refreshing","setRefreshing","errorKey","setErrorKey","serverLanguage","setServerLanguage","languageLoaded","setLanguageLoaded","store","setStore","mounted","rawThreads","watermarks","Map","reads","requestSeq","appliedSeq","readEpoch","chatVisibleRef","current","timers","attempt","values","timer","clearTimeout","clear","publish","raw","reconciled","sendRead","threadId","get","inFlight","covers","target","queryId","then","attempts","delete","catch","setTimeout","flushReads","markThreadRead","thread","find","t","id","latest","set","markAllRead","fetchThreads","mode","seq","blank","spinner","skeleton","data","language","fetchCount","epoch","total_unread","idle","intervalMs","tick","size","setInterval","Math","max","appStateSub","addEventListener","state","clearInterval","remove","refresh","reload"],"sourceRoot":"../../src","sources":["useSupportThreads.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/utils.js
CHANGED
|
@@ -1,33 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const minutes = Math.floor(seconds / 60);
|
|
9
|
-
if (minutes < 60) return `${minutes}m ago`;
|
|
10
|
-
const hours = Math.floor(minutes / 60);
|
|
11
|
-
if (hours < 24) return `${hours}h ago`;
|
|
12
|
-
const days = Math.floor(hours / 24);
|
|
13
|
-
if (days < 7) return `${days}d ago`;
|
|
14
|
-
const weeks = Math.floor(days / 7);
|
|
15
|
-
if (weeks < 5) return `${weeks}w ago`;
|
|
16
|
-
const months = Math.floor(days / 30);
|
|
17
|
-
if (months < 12) return `${months}mo ago`;
|
|
18
|
-
return `${Math.floor(days / 365)}y ago`;
|
|
19
|
-
}
|
|
20
|
-
export function formatDate(iso) {
|
|
21
|
-
return new Date(iso).toLocaleDateString(undefined, {
|
|
3
|
+
// Dates and times follow the language the user picked, not the device's:
|
|
4
|
+
// a sheet that says "Traduction…" above "2 days ago" reads as broken.
|
|
5
|
+
|
|
6
|
+
export function formatDate(iso, strings) {
|
|
7
|
+
return new Date(iso).toLocaleDateString(strings.locale, {
|
|
22
8
|
year: 'numeric',
|
|
23
9
|
month: 'short',
|
|
24
10
|
day: 'numeric'
|
|
25
11
|
});
|
|
26
12
|
}
|
|
27
13
|
|
|
28
|
-
/** "14:32" in the
|
|
29
|
-
export function formatTime(iso) {
|
|
30
|
-
return new Date(iso).toLocaleTimeString(
|
|
14
|
+
/** "14:32" in the user's locale — shown under a group of messages. */
|
|
15
|
+
export function formatTime(iso, strings) {
|
|
16
|
+
return new Date(iso).toLocaleTimeString(strings.locale, {
|
|
31
17
|
hour: 'numeric',
|
|
32
18
|
minute: '2-digit'
|
|
33
19
|
});
|
|
@@ -39,13 +25,13 @@ export function isSameDay(a, b) {
|
|
|
39
25
|
}
|
|
40
26
|
|
|
41
27
|
/** Date separator label: Today / Yesterday / "Mon, 5 Jan". */
|
|
42
|
-
export function dayLabel(iso) {
|
|
28
|
+
export function dayLabel(iso, strings) {
|
|
43
29
|
const now = new Date();
|
|
44
|
-
if (isSameDay(iso, now.toISOString())) return '
|
|
30
|
+
if (isSameDay(iso, now.toISOString())) return strings.t('time.today');
|
|
45
31
|
const yesterday = new Date(now.getTime() - 86_400_000);
|
|
46
|
-
if (isSameDay(iso, yesterday.toISOString())) return '
|
|
32
|
+
if (isSameDay(iso, yesterday.toISOString())) return strings.t('time.yesterday');
|
|
47
33
|
const date = new Date(iso);
|
|
48
|
-
return date.toLocaleDateString(
|
|
34
|
+
return date.toLocaleDateString(strings.locale, {
|
|
49
35
|
weekday: 'short',
|
|
50
36
|
month: 'short',
|
|
51
37
|
day: 'numeric',
|
|
@@ -54,6 +40,12 @@ export function dayLabel(iso) {
|
|
|
54
40
|
})
|
|
55
41
|
});
|
|
56
42
|
}
|
|
43
|
+
const PLANS = ['free', 'trial', 'pro'];
|
|
44
|
+
|
|
45
|
+
/** The user's plan, reading the deprecated `isPaid` when `plan` is absent. */
|
|
46
|
+
export function userPlan(user) {
|
|
47
|
+
return user.plan ?? (user.isPaid ? 'pro' : 'free');
|
|
48
|
+
}
|
|
57
49
|
|
|
58
50
|
/** Dev-mode prop validation with actionable messages. */
|
|
59
51
|
export function validateProps(props) {
|
|
@@ -68,13 +60,16 @@ export function validateProps(props) {
|
|
|
68
60
|
}
|
|
69
61
|
const user = props.user;
|
|
70
62
|
if (!user || typeof user !== 'object') {
|
|
71
|
-
return 'SupportButton: `user` is required — { name,
|
|
63
|
+
return 'SupportButton: `user` is required — { name, plan, revenuecatId, appVersion }.';
|
|
72
64
|
}
|
|
73
65
|
if (typeof user.name !== 'string' || user.name.length === 0) {
|
|
74
66
|
return 'SupportButton: `user.name` is required (string).';
|
|
75
67
|
}
|
|
76
|
-
if (
|
|
77
|
-
return 'SupportButton: `user.
|
|
68
|
+
if (user.plan !== undefined && !PLANS.includes(user.plan)) {
|
|
69
|
+
return 'SupportButton: `user.plan` must be "free", "trial" or "pro".';
|
|
70
|
+
}
|
|
71
|
+
if (user.plan === undefined && typeof user.isPaid !== 'boolean') {
|
|
72
|
+
return 'SupportButton: `user.plan` is required — "free", "trial" or "pro".';
|
|
78
73
|
}
|
|
79
74
|
if (typeof user.revenuecatId !== 'string' || user.revenuecatId.length === 0) {
|
|
80
75
|
return 'SupportButton: `user.revenuecatId` is required (string) — the RevenueCat app user id.';
|
package/lib/module/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["formatDate","iso","strings","Date","toLocaleDateString","locale","year","month","day","formatTime","toLocaleTimeString","hour","minute","isSameDay","a","b","first","second","getFullYear","getMonth","getDate","dayLabel","now","toISOString","t","yesterday","getTime","date","weekday","PLANS","userPlan","user","plan","isPaid","validateProps","props","appName","length","apiKey","supabaseUrl","test","name","undefined","includes","revenuecatId","appVersion"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sent as `x-sdk-version` on every request. The backend uses its presence to
|
|
5
|
+
* tell 0.4+ (one support chat) from older builds still in the App Store, so
|
|
6
|
+
* keep it in step with package.json.
|
|
7
|
+
*/
|
|
8
|
+
export const SDK_VERSION = '0.4.0';
|
|
9
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SDK_VERSION"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAG,OAAO","ignoreList":[]}
|
package/lib/typescript/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PushPermissionStatus,
|
|
1
|
+
import type { PushPermissionStatus, ThreadsResponse, UserPlan } from './types';
|
|
2
2
|
export interface ApiConfig {
|
|
3
3
|
supabaseUrl: string;
|
|
4
4
|
apiKey: string;
|
|
@@ -27,22 +27,52 @@ export declare function registerPush(config: ApiConfig, input: {
|
|
|
27
27
|
}): Promise<{
|
|
28
28
|
ok: boolean;
|
|
29
29
|
}>;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
message: string;
|
|
33
|
-
userName: string;
|
|
34
|
-
isPaid: boolean;
|
|
30
|
+
/** Records the language the user reads and writes support messages in. */
|
|
31
|
+
export declare function setLanguage(config: ApiConfig, input: {
|
|
35
32
|
revenuecatId: string;
|
|
36
|
-
|
|
33
|
+
language: string;
|
|
37
34
|
}): Promise<{
|
|
38
|
-
|
|
35
|
+
language: string;
|
|
39
36
|
}>;
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
/** What the backend is told about the current user. */
|
|
38
|
+
export interface ReportedUser {
|
|
39
|
+
name: string;
|
|
40
|
+
plan: UserPlan;
|
|
41
|
+
appVersion: string;
|
|
42
|
+
/** Decides which store a review request opens. */
|
|
43
|
+
platform?: 'ios' | 'android';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sends one chat message. The server appends it to the user's open
|
|
47
|
+
* conversation, or starts one if none is open (a first message, or the first
|
|
48
|
+
* after a resolve).
|
|
49
|
+
*/
|
|
50
|
+
export declare function sendMessage(config: ApiConfig, input: {
|
|
42
51
|
revenuecatId: string;
|
|
43
52
|
message: string;
|
|
53
|
+
language: string;
|
|
54
|
+
user: ReportedUser;
|
|
44
55
|
}): Promise<{
|
|
56
|
+
query_id: string;
|
|
45
57
|
message_id: string;
|
|
58
|
+
started: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Records the user in the app's directory, so the team can find and message
|
|
62
|
+
* them before they ever open support. Called on every load.
|
|
63
|
+
*/
|
|
64
|
+
export declare function registerUser(config: ApiConfig, input: {
|
|
65
|
+
revenuecatId: string;
|
|
66
|
+
user: ReportedUser;
|
|
67
|
+
}): Promise<{
|
|
68
|
+
ok: boolean;
|
|
69
|
+
}>;
|
|
70
|
+
/** Records a tap on a review request's store button, for the dashboard. */
|
|
71
|
+
export declare function reviewOpened(config: ApiConfig, input: {
|
|
72
|
+
revenuecatId: string;
|
|
73
|
+
messageId: string;
|
|
74
|
+
}): Promise<{
|
|
75
|
+
ok: boolean;
|
|
46
76
|
}>;
|
|
47
77
|
export declare function markRead(config: ApiConfig, input: {
|
|
48
78
|
queryId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/E,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,UAAQ;CAMpE;AA6CD,wBAAgB,UAAU,CACxB,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAKnC;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAW1B;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ/B;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAWD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IACL,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;CACpB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAYrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAClD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAS1B;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAS1B;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ1B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SupportButtonProps } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* The single entry point of the SDK: a launcher with an unread badge that
|
|
4
|
-
* opens the support bottom sheet.
|
|
5
|
-
* handled by useSupportThreads.
|
|
4
|
+
* opens the support chat in a bottom sheet. Conversations, polling, and read
|
|
5
|
+
* receipts are handled by useSupportThreads.
|
|
6
6
|
*/
|
|
7
7
|
export declare function SupportButton(props: SupportButtonProps): import("react").JSX.Element | null;
|
|
8
8
|
//# sourceMappingURL=SupportButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportButton.d.ts","sourceRoot":"","sources":["../../../src/components/SupportButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SupportButton.d.ts","sourceRoot":"","sources":["../../../src/components/SupportButton.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,kBAAkB,EAAa,MAAM,UAAU,CAAC;AAU9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,sCAgVtD"}
|
|
@@ -2,14 +2,6 @@ export declare function ChatIcon({ color, size }: {
|
|
|
2
2
|
color: string;
|
|
3
3
|
size?: number;
|
|
4
4
|
}): import("react").JSX.Element;
|
|
5
|
-
export declare function PlusCircleIcon({ color, size }: {
|
|
6
|
-
color: string;
|
|
7
|
-
size?: number;
|
|
8
|
-
}): import("react").JSX.Element;
|
|
9
|
-
export declare function AlertCircleIcon({ color, size }: {
|
|
10
|
-
color: string;
|
|
11
|
-
size?: number;
|
|
12
|
-
}): import("react").JSX.Element;
|
|
13
5
|
/** Chevron built from two borders, rotated. direction: right | left | down. */
|
|
14
6
|
export declare function Chevron({ color, size, direction, }: {
|
|
15
7
|
color: string;
|
|
@@ -24,20 +16,24 @@ export declare function CheckIcon({ color, size }: {
|
|
|
24
16
|
color: string;
|
|
25
17
|
size?: number;
|
|
26
18
|
}): import("react").JSX.Element;
|
|
19
|
+
/** Globe: circle, equator, and a pill standing in for the meridian curve. */
|
|
20
|
+
export declare function GlobeIcon({ color, size }: {
|
|
21
|
+
color: string;
|
|
22
|
+
size?: number;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
27
24
|
/** Send arrow: a stem plus a chevron head, both centered on the same axis. */
|
|
28
25
|
export declare function ArrowUpIcon({ color, size }: {
|
|
29
26
|
color: string;
|
|
30
27
|
size?: number;
|
|
31
28
|
}): import("react").JSX.Element;
|
|
32
29
|
/**
|
|
33
|
-
* The
|
|
34
|
-
*
|
|
35
|
-
* better than 1.5px strokes at launcher size and on top of a color fill.
|
|
30
|
+
* The mark on the launcher button. Solid shapes read far better than 1.5px
|
|
31
|
+
* strokes at launcher size and on top of a color fill.
|
|
36
32
|
*/
|
|
37
|
-
export declare function
|
|
33
|
+
export declare function ConversationMark({ color, holeColor, size, }: {
|
|
38
34
|
color: string;
|
|
39
|
-
/** The surface behind the mark — the
|
|
40
|
-
|
|
35
|
+
/** The surface behind the mark — the gap between the bubbles is cut in this color. */
|
|
36
|
+
holeColor: string;
|
|
41
37
|
size?: number;
|
|
42
38
|
}): import("react").JSX.Element;
|
|
43
39
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0B9E;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/icons.tsx"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BA0B9E;AAED,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,IAAS,EACT,SAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACvC,+BAeA;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAc/E;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAiC/E;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAsCjF;AAkBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,SAAS,EACT,IAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,+BA0CA"}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { Translator } from '../i18n';
|
|
3
4
|
import type { SupportTheme } from '../theme';
|
|
4
|
-
import type { QueryStatus, QueryType } from '../types';
|
|
5
|
-
export declare function typeIcon(type: QueryType, color: string, size?: number): ReactNode;
|
|
6
|
-
export declare function typeColor(type: QueryType, theme: SupportTheme): string;
|
|
7
|
-
export declare function typeBackground(type: QueryType, theme: SupportTheme): string;
|
|
8
|
-
/** Tinted round chip holding a type icon — the anchor of every list row. */
|
|
9
|
-
export declare function TypeGlyph({ type, theme, size, }: {
|
|
10
|
-
type: QueryType;
|
|
11
|
-
theme: SupportTheme;
|
|
12
|
-
size?: number;
|
|
13
|
-
}): import("react").JSX.Element;
|
|
14
|
-
/** Status dot + label — same visual language as the dashboard. */
|
|
15
|
-
export declare function StatusIndicator({ status, theme, }: {
|
|
16
|
-
status: QueryStatus;
|
|
17
|
-
theme: SupportTheme;
|
|
18
|
-
}): import("react").JSX.Element;
|
|
19
5
|
/** Pressable row with the standard press wash. */
|
|
20
6
|
export declare function PressableRow({ onPress, children, theme, style, accessibilityLabel, }: {
|
|
21
7
|
onPress: () => void;
|
|
@@ -46,16 +32,6 @@ export declare function SecondaryButton({ label, onPress, theme, }: {
|
|
|
46
32
|
onPress: () => void;
|
|
47
33
|
theme: SupportTheme;
|
|
48
34
|
}): import("react").JSX.Element;
|
|
49
|
-
/** The count pill on a thread row. */
|
|
50
|
-
export declare function UnreadPill({ count, theme, }: {
|
|
51
|
-
count: number;
|
|
52
|
-
theme: SupportTheme;
|
|
53
|
-
}): import("react").JSX.Element;
|
|
54
|
-
export declare function SectionLabel({ children, theme, style, }: {
|
|
55
|
-
children: ReactNode;
|
|
56
|
-
theme: SupportTheme;
|
|
57
|
-
style?: StyleProp<TextStyle>;
|
|
58
|
-
}): import("react").JSX.Element;
|
|
59
35
|
/** Small muted icon + one line — no illustrations. */
|
|
60
36
|
export declare function EmptyState({ message, hint, theme, icon, }: {
|
|
61
37
|
message: string;
|
|
@@ -64,10 +40,11 @@ export declare function EmptyState({ message, hint, theme, icon, }: {
|
|
|
64
40
|
icon?: ReactNode;
|
|
65
41
|
}): import("react").JSX.Element;
|
|
66
42
|
/** Inline failure state with retry — errors are designed, not toasted. */
|
|
67
|
-
export declare function ErrorState({ message, onRetry, theme, }: {
|
|
43
|
+
export declare function ErrorState({ message, onRetry, theme, strings, }: {
|
|
68
44
|
message: string;
|
|
69
45
|
onRetry: () => void;
|
|
70
46
|
theme: SupportTheme;
|
|
47
|
+
strings: Translator;
|
|
71
48
|
}): import("react").JSX.Element;
|
|
72
49
|
/** Pulsing block matching final layout dimensions. */
|
|
73
50
|
export declare function SkeletonBlock({ width, height, theme, radius, style, }: {
|
|
@@ -84,8 +61,4 @@ export declare const textStyles: {
|
|
|
84
61
|
secondary: (theme: SupportTheme) => TextStyle;
|
|
85
62
|
meta: (theme: SupportTheme) => TextStyle;
|
|
86
63
|
};
|
|
87
|
-
export declare function TypeChipView({ type, theme, }: {
|
|
88
|
-
type: QueryType;
|
|
89
|
-
theme: SupportTheme;
|
|
90
|
-
}): import("react").JSX.Element;
|
|
91
64
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/primitives.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Translator } from '../../i18n';
|
|
2
|
+
import { type Language } from '../../i18n/languages';
|
|
3
|
+
import type { SupportTheme } from '../../theme';
|
|
4
|
+
import type { Thread } from '../../types';
|
|
5
|
+
export declare function ChatScreen({ theme, strings, language, threads, loading, error, onRetry, onSend, onChangeLanguage, onClose, reviewLabel, onOpenReview, }: {
|
|
6
|
+
theme: SupportTheme;
|
|
7
|
+
strings: Translator;
|
|
8
|
+
language: Language;
|
|
9
|
+
threads: Thread[] | null;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
error: string | null;
|
|
12
|
+
onRetry: () => void;
|
|
13
|
+
/** Resolves null on success, or a user-facing error message. */
|
|
14
|
+
onSend: (message: string) => Promise<string | null>;
|
|
15
|
+
onChangeLanguage: () => void;
|
|
16
|
+
onClose: () => void;
|
|
17
|
+
/** The review button's label, or null when this platform's store isn't set up. */
|
|
18
|
+
reviewLabel: string | null;
|
|
19
|
+
onOpenReview: (messageId: string) => void;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=ChatScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ChatScreen.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AAmPzD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,YAAY,GACb,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpD,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,+BAgQA"}
|