@appsupportkit/support-sdk 0.1.2 → 0.2.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.
Files changed (94) hide show
  1. package/lib/commonjs/components/BottomSheet.js +67 -47
  2. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  3. package/lib/commonjs/components/LauncherButton.js +177 -0
  4. package/lib/commonjs/components/LauncherButton.js.map +1 -0
  5. package/lib/commonjs/components/SupportButton.js +54 -176
  6. package/lib/commonjs/components/SupportButton.js.map +1 -1
  7. package/lib/commonjs/components/icons.js +74 -23
  8. package/lib/commonjs/components/icons.js.map +1 -1
  9. package/lib/commonjs/components/primitives.js +183 -38
  10. package/lib/commonjs/components/primitives.js.map +1 -1
  11. package/lib/commonjs/components/screens/ComposeScreen.js +115 -58
  12. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
  13. package/lib/commonjs/components/screens/HomeScreen.js +170 -115
  14. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
  15. package/lib/commonjs/components/screens/ThreadScreen.js +222 -108
  16. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/theme.js +136 -17
  19. package/lib/commonjs/theme.js.map +1 -1
  20. package/lib/commonjs/types.js +7 -0
  21. package/lib/commonjs/types.js.map +1 -1
  22. package/lib/commonjs/unread.js +92 -0
  23. package/lib/commonjs/unread.js.map +1 -0
  24. package/lib/commonjs/useSupportThreads.js +286 -0
  25. package/lib/commonjs/useSupportThreads.js.map +1 -0
  26. package/lib/commonjs/utils.js +33 -0
  27. package/lib/commonjs/utils.js.map +1 -1
  28. package/lib/module/components/BottomSheet.js +68 -48
  29. package/lib/module/components/BottomSheet.js.map +1 -1
  30. package/lib/module/components/LauncherButton.js +172 -0
  31. package/lib/module/components/LauncherButton.js.map +1 -0
  32. package/lib/module/components/SupportButton.js +57 -179
  33. package/lib/module/components/SupportButton.js.map +1 -1
  34. package/lib/module/components/icons.js +72 -22
  35. package/lib/module/components/icons.js.map +1 -1
  36. package/lib/module/components/primitives.js +179 -39
  37. package/lib/module/components/primitives.js.map +1 -1
  38. package/lib/module/components/screens/ComposeScreen.js +118 -61
  39. package/lib/module/components/screens/ComposeScreen.js.map +1 -1
  40. package/lib/module/components/screens/HomeScreen.js +172 -117
  41. package/lib/module/components/screens/HomeScreen.js.map +1 -1
  42. package/lib/module/components/screens/ThreadScreen.js +228 -112
  43. package/lib/module/components/screens/ThreadScreen.js.map +1 -1
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/theme.js +135 -16
  46. package/lib/module/theme.js.map +1 -1
  47. package/lib/module/types.js +7 -0
  48. package/lib/module/types.js.map +1 -1
  49. package/lib/module/unread.js +83 -0
  50. package/lib/module/unread.js.map +1 -0
  51. package/lib/module/useSupportThreads.js +281 -0
  52. package/lib/module/useSupportThreads.js.map +1 -0
  53. package/lib/module/utils.js +30 -0
  54. package/lib/module/utils.js.map +1 -1
  55. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  56. package/lib/typescript/components/LauncherButton.d.ts +14 -0
  57. package/lib/typescript/components/LauncherButton.d.ts.map +1 -0
  58. package/lib/typescript/components/SupportButton.d.ts +3 -3
  59. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  60. package/lib/typescript/components/icons.d.ts +13 -2
  61. package/lib/typescript/components/icons.d.ts.map +1 -1
  62. package/lib/typescript/components/primitives.d.ts +35 -4
  63. package/lib/typescript/components/primitives.d.ts.map +1 -1
  64. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
  65. package/lib/typescript/components/screens/HomeScreen.d.ts +3 -2
  66. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
  67. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
  68. package/lib/typescript/index.d.ts +1 -1
  69. package/lib/typescript/index.d.ts.map +1 -1
  70. package/lib/typescript/theme.d.ts +44 -3
  71. package/lib/typescript/theme.d.ts.map +1 -1
  72. package/lib/typescript/types.d.ts +22 -0
  73. package/lib/typescript/types.d.ts.map +1 -1
  74. package/lib/typescript/unread.d.ts +22 -0
  75. package/lib/typescript/unread.d.ts.map +1 -0
  76. package/lib/typescript/useSupportThreads.d.ts +28 -0
  77. package/lib/typescript/useSupportThreads.d.ts.map +1 -0
  78. package/lib/typescript/utils.d.ts +5 -0
  79. package/lib/typescript/utils.d.ts.map +1 -1
  80. package/package.json +2 -2
  81. package/src/components/BottomSheet.tsx +61 -43
  82. package/src/components/LauncherButton.tsx +217 -0
  83. package/src/components/SupportButton.tsx +52 -196
  84. package/src/components/icons.tsx +77 -19
  85. package/src/components/primitives.tsx +217 -36
  86. package/src/components/screens/ComposeScreen.tsx +131 -61
  87. package/src/components/screens/HomeScreen.tsx +168 -117
  88. package/src/components/screens/ThreadScreen.tsx +289 -119
  89. package/src/index.tsx +1 -0
  90. package/src/theme.ts +165 -18
  91. package/src/types.ts +24 -0
  92. package/src/unread.ts +91 -0
  93. package/src/useSupportThreads.ts +372 -0
  94. package/src/utils.ts +33 -0
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","Animated","Easing","Modal","PanResponder","Pressable","useWindowDimensions","View","SafeAreaProvider","SafeAreaView","jsx","_jsx","jsxs","_jsxs","SLIDE_MS","BottomSheet","visible","onClose","theme","children","height","windowHeight","sheetHeight","Math","min","translateY","Value","current","backdrop","animateIn","parallel","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","animateOut","done","finished","requestClose","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","_e","g","abs","dy","onPanResponderMove","setValue","onPanResponderRelease","vy","transparent","animationType","onRequestClose","statusBarTranslucent","style","flex","justifyContent","position","top","right","bottom","left","backgroundColor","opacity","onPress","accessibilityLabel","colors","overlay","borderTopLeftRadius","radii","sheet","borderTopRightRadius","borderWidth","borderBottomWidth","borderColor","border","transform","panHandlers","alignItems","paddingVertical","width","borderRadius","borderStrong","edges"],"sourceRoot":"../../../src","sources":["components/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Animated","Easing","Modal","PanResponder","Pressable","useWindowDimensions","View","SafeAreaProvider","SafeAreaView","jsx","_jsx","jsxs","_jsxs","SLIDE_MS","FADE_MS","BottomSheet","visible","onClose","theme","children","height","windowHeight","sheetHeight","Math","min","rendered","setRendered","translateY","Value","current","backdrop","shown","setValue","parallel","timing","toValue","duration","easing","bezier","useNativeDriver","out","cubic","start","motion","slow","in","finished","requestClose","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","_e","g","abs","dy","onPanResponderMove","onPanResponderRelease","vy","transparent","animationType","onRequestClose","statusBarTranslucent","style","flex","justifyContent","position","top","right","bottom","left","backgroundColor","opacity","onPress","accessibilityLabel","colors","bg","borderTopLeftRadius","radii","sheet","borderTopRightRadius","borderWidth","borderBottomWidth","borderColor","border","overflow","transform","shadows","panHandlers","alignItems","paddingTop","paddingBottom","width","borderRadius","borderStrong","edges"],"sourceRoot":"../../../src","sources":["components/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ // The launcher: the one piece of the SDK that lives inside the host app's
4
+ // own UI, so it has to look intentional next to anything. Three variants
5
+ // cover the placements that actually occur — a floating action button, a
6
+ // bordered button in a header, and a bare icon in a toolbar.
7
+ import { useEffect, useRef } from 'react';
8
+ import { Animated, Easing, Pressable, Text, View } from 'react-native';
9
+ import { ChatBubbleMark } from './icons';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const PRESS_SCALE = 0.93;
12
+
13
+ /** Counts stay legible: three digits in a pill is not a design. */
14
+ function badgeLabel(unread) {
15
+ return unread > 99 ? '99+' : String(unread);
16
+ }
17
+ export function LauncherButton({
18
+ theme,
19
+ unread,
20
+ variant = 'solid',
21
+ size = 52,
22
+ label,
23
+ style,
24
+ onPress
25
+ }) {
26
+ const scale = useRef(new Animated.Value(1)).current;
27
+ const pulse = useRef(new Animated.Value(0)).current;
28
+ const previousUnread = useRef(unread);
29
+
30
+ // A new reply pulses the halo twice, then stops. Enough to catch the eye
31
+ // on the way past; not a permanently animating element in someone's app.
32
+ useEffect(() => {
33
+ if (unread > previousUnread.current) {
34
+ pulse.setValue(0);
35
+ const animation = Animated.loop(Animated.timing(pulse, {
36
+ toValue: 1,
37
+ duration: 1600,
38
+ easing: Easing.out(Easing.ease),
39
+ useNativeDriver: true
40
+ }), {
41
+ iterations: 2
42
+ });
43
+ animation.start(() => pulse.setValue(0));
44
+ previousUnread.current = unread;
45
+ return () => animation.stop();
46
+ }
47
+ previousUnread.current = unread;
48
+ return undefined;
49
+ }, [unread, pulse]);
50
+ const press = to => Animated.timing(scale, {
51
+ toValue: to,
52
+ duration: to === 1 ? theme.motion.base : theme.motion.fast,
53
+ easing: Easing.out(Easing.cubic),
54
+ useNativeDriver: true
55
+ }).start();
56
+ const solid = variant === 'solid';
57
+ const soft = variant === 'soft';
58
+ const fill = solid ? theme.colors.accent : soft ? theme.colors.surface : 'transparent';
59
+ const markColor = solid ? theme.colors.accentForeground : soft ? theme.colors.accent : theme.launcher.minimalMark;
60
+ // Dots are punched out of the bubble in whatever sits behind the mark —
61
+ // the button's own fill, or the app background when there isn't one.
62
+ const markHoleColor = solid ? theme.colors.accent : soft ? theme.colors.surface : theme.colors.bg;
63
+ // Dark: a hairline separates the fill from a near-black app background.
64
+ // Light: the accent-tinted shadow already does that, so the ring only has
65
+ // to keep the edge from looking soft.
66
+ const border = solid ? {
67
+ borderWidth: 1,
68
+ borderColor: theme.launcher.solidRing
69
+ } : soft ? {
70
+ borderWidth: 1,
71
+ borderColor: theme.colors.border
72
+ } : {
73
+ borderWidth: 0,
74
+ borderColor: 'transparent'
75
+ };
76
+ const badgeBg = solid ? theme.colors.accentForeground : theme.colors.accent;
77
+ const badgeFg = solid ? theme.colors.accent : theme.colors.accentForeground;
78
+ const height = label ? Math.max(44, size * 0.84) : size;
79
+ const markSize = Math.round(size * (label ? 0.36 : 0.42));
80
+ return /*#__PURE__*/_jsxs(Animated.View, {
81
+ style: [{
82
+ transform: [{
83
+ scale
84
+ }]
85
+ }, style]
86
+ // The halo and badge sit outside the button's bounds.
87
+ ,
88
+ pointerEvents: "box-none",
89
+ children: [unread > 0 && /*#__PURE__*/_jsx(Animated.View, {
90
+ pointerEvents: "none",
91
+ style: {
92
+ position: 'absolute',
93
+ top: 0,
94
+ left: 0,
95
+ width: label ? undefined : size,
96
+ right: label ? 0 : undefined,
97
+ height,
98
+ borderRadius: theme.radii.pill,
99
+ backgroundColor: theme.colors.accent,
100
+ opacity: pulse.interpolate({
101
+ inputRange: [0, 1],
102
+ outputRange: [0.28, 0]
103
+ }),
104
+ transform: [{
105
+ scale: pulse.interpolate({
106
+ inputRange: [0, 1],
107
+ outputRange: [1, 1.5]
108
+ })
109
+ }]
110
+ }
111
+ }), /*#__PURE__*/_jsxs(Pressable, {
112
+ onPress: onPress,
113
+ onPressIn: () => press(PRESS_SCALE),
114
+ onPressOut: () => press(1),
115
+ hitSlop: 8,
116
+ accessibilityRole: "button",
117
+ accessibilityLabel: unread > 0 ? `Support, ${unread} unread ${unread === 1 ? 'reply' : 'replies'}` : 'Support',
118
+ style: {
119
+ height,
120
+ width: label ? undefined : size,
121
+ paddingHorizontal: label ? 18 : 0,
122
+ flexDirection: 'row',
123
+ alignItems: 'center',
124
+ justifyContent: 'center',
125
+ gap: 9,
126
+ borderRadius: theme.radii.pill,
127
+ backgroundColor: fill,
128
+ ...border,
129
+ ...(variant === 'minimal' ? null : theme.shadows.launcher)
130
+ },
131
+ children: [/*#__PURE__*/_jsx(ChatBubbleMark, {
132
+ color: markColor,
133
+ dotColor: markHoleColor,
134
+ size: markSize
135
+ }), label !== undefined && /*#__PURE__*/_jsx(Text, {
136
+ style: {
137
+ fontSize: 15,
138
+ fontWeight: '600',
139
+ letterSpacing: -0.1,
140
+ color: solid ? theme.colors.accentForeground : theme.colors.textPrimary
141
+ },
142
+ children: label
143
+ })]
144
+ }), unread > 0 && /*#__PURE__*/_jsx(View, {
145
+ pointerEvents: "none",
146
+ style: {
147
+ position: 'absolute',
148
+ top: -5,
149
+ right: -5,
150
+ minWidth: 19,
151
+ height: 19,
152
+ borderRadius: theme.radii.pill,
153
+ paddingHorizontal: 5,
154
+ backgroundColor: badgeBg,
155
+ alignItems: 'center',
156
+ justifyContent: 'center',
157
+ ...theme.shadows.badge
158
+ },
159
+ children: /*#__PURE__*/_jsx(Text, {
160
+ style: {
161
+ fontSize: 11,
162
+ lineHeight: 14,
163
+ fontWeight: '700',
164
+ color: badgeFg,
165
+ fontVariant: ['tabular-nums']
166
+ },
167
+ children: badgeLabel(unread)
168
+ })
169
+ })]
170
+ });
171
+ }
172
+ //# sourceMappingURL=LauncherButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","Pressable","Text","View","ChatBubbleMark","jsx","_jsx","jsxs","_jsxs","PRESS_SCALE","badgeLabel","unread","String","LauncherButton","theme","variant","size","label","style","onPress","scale","Value","current","pulse","previousUnread","setValue","animation","loop","timing","toValue","duration","easing","out","ease","useNativeDriver","iterations","start","stop","undefined","press","to","motion","base","fast","cubic","solid","soft","fill","colors","accent","surface","markColor","accentForeground","launcher","minimalMark","markHoleColor","bg","border","borderWidth","borderColor","solidRing","badgeBg","badgeFg","height","Math","max","markSize","round","transform","pointerEvents","children","position","top","left","width","right","borderRadius","radii","pill","backgroundColor","opacity","interpolate","inputRange","outputRange","onPressIn","onPressOut","hitSlop","accessibilityRole","accessibilityLabel","paddingHorizontal","flexDirection","alignItems","justifyContent","gap","shadows","color","dotColor","fontSize","fontWeight","letterSpacing","textPrimary","minWidth","badge","lineHeight","fontVariant"],"sourceRoot":"../../../src","sources":["components/LauncherButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,34 +1,26 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
- import { AppState, Pressable, Text, View } from 'react-native';
5
- import { getThreads, getUnreadCount, markRead, postMessage, registerPush, submitQuery, SupportApiError } from '../api';
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { Text, View } from 'react-native';
5
+ import { postMessage, registerPush, submitQuery, SupportApiError } from '../api';
6
6
  import { ensurePushPermission, isPushAvailable } from '../push';
7
7
  import { resolveTheme } from '../theme';
8
+ import { IDLE_POLL_MS, useSupportThreads } from '../useSupportThreads';
8
9
  import { validateProps } from '../utils';
9
10
  import { BottomSheet } from './BottomSheet';
10
- import { BubbleMark } from './icons';
11
+ import { LauncherButton } from './LauncherButton';
11
12
  import { ComposeScreen } from './screens/ComposeScreen';
12
13
  import { HomeScreen } from './screens/HomeScreen';
13
14
  import { ThreadScreen } from './screens/ThreadScreen';
14
15
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
- // Poll cadence by context: fast where latency is felt (staring at a thread
16
- // waiting for a reply), slow when the sheet is closed — and the idle tick
17
- // uses the count-only endpoint, so it costs ~18 bytes instead of the full
18
- // thread list.
19
- const THREAD_POLL_MS = 5_000;
20
- const SHEET_POLL_MS = 15_000;
21
- const IDLE_POLL_MS = 60_000;
22
- const MIN_POLL_MS = 3_000;
23
-
24
16
  /**
25
- * The single entry point of the SDK: a button with an unread badge that
26
- * opens the support bottom sheet. Polls get-threads on mount and whenever
27
- * the sheet opens (no websockets in v1).
17
+ * The single entry point of the SDK: a launcher with an unread badge that
18
+ * opens the support bottom sheet. Threads, polling, and read receipts are
19
+ * handled by useSupportThreads.
28
20
  */
29
21
  export function SupportButton(props) {
30
22
  const validationError = validateProps(props);
31
- const theme = resolveTheme(props.theme);
23
+ const theme = useMemo(() => resolveTheme(props.theme, props.accentColor), [props.theme, props.accentColor]);
32
24
  const config = useMemo(() => ({
33
25
  supabaseUrl: props.supabaseUrl,
34
26
  apiKey: props.apiKey,
@@ -38,72 +30,22 @@ export function SupportButton(props) {
38
30
  const [screen, setScreen] = useState({
39
31
  name: 'home'
40
32
  });
41
- const [threads, setThreads] = useState(null);
42
- const [totalUnread, setTotalUnread] = useState(0);
43
- const [loading, setLoading] = useState(false);
44
- const [error, setError] = useState(null);
45
- const mounted = useRef(true);
46
- useEffect(() => {
47
- mounted.current = true;
48
- return () => {
49
- mounted.current = false;
50
- };
51
- }, []);
52
- const refresh = useCallback(async () => {
53
- if (validationError) return;
54
- setLoading(true);
55
- setError(null);
56
- try {
57
- const data = await getThreads(config, props.user.revenuecatId);
58
- if (!mounted.current) return;
59
- setThreads(data.threads);
60
- setTotalUnread(data.total_unread);
61
- } catch (e) {
62
- if (!mounted.current) return;
63
- setError(e instanceof SupportApiError && e.offline ? "You're offline — check your connection" : "Couldn't load threads");
64
- } finally {
65
- if (mounted.current) setLoading(false);
66
- }
67
- }, [config, props.user.revenuecatId, validationError]);
68
-
69
- /** Badge-only refresh — the cheap endpoint used while idle. */
70
- const refreshBadge = useCallback(async () => {
71
- if (validationError) return;
72
- try {
73
- const data = await getUnreadCount(config, props.user.revenuecatId);
74
- if (mounted.current) setTotalUnread(data.total_unread);
75
- } catch {
76
- // Best-effort: the next tick or the next sheet open reconciles.
77
- }
78
- }, [config, props.user.revenuecatId, validationError]);
79
-
80
- // Poll on mount…
81
- useEffect(() => {
82
- void refresh();
83
- }, [refresh]);
84
-
85
- // …then adapt the cadence to what the user is looking at, and refresh
86
- // whenever the app returns to the foreground.
87
- const idlePollMs = props.pollIntervalMs ?? IDLE_POLL_MS;
88
- const screenName = screen.name;
89
- useEffect(() => {
90
- const idle = !sheetOpen;
91
- const intervalMs = idle ? idlePollMs : screenName === 'thread' ? THREAD_POLL_MS : SHEET_POLL_MS;
92
-
93
- // While idle only the badge matters, so use the count-only endpoint.
94
- const tick = () => void (idle ? refreshBadge() : refresh());
95
-
96
- // Clamped so a typo like `pollIntervalMs={30}` can't hammer the API;
97
- // 0 (or negative) disables idle polling entirely.
98
- const timer = intervalMs > 0 ? setInterval(tick, Math.max(intervalMs, MIN_POLL_MS)) : null;
99
- const appStateSub = AppState.addEventListener('change', state => {
100
- if (state === 'active') tick();
101
- });
102
- return () => {
103
- if (timer !== null) clearInterval(timer);
104
- appStateSub.remove();
105
- };
106
- }, [sheetOpen, screenName, idlePollMs, refresh, refreshBadge]);
33
+ const {
34
+ threads,
35
+ totalUnread,
36
+ loading,
37
+ refreshing,
38
+ error,
39
+ refresh,
40
+ reload
41
+ } = useSupportThreads({
42
+ config,
43
+ revenuecatId: props.user.revenuecatId,
44
+ enabled: validationError === null,
45
+ sheetOpen,
46
+ activeThreadId: screen.name === 'thread' ? screen.threadId : null,
47
+ idlePollMs: props.pollIntervalMs ?? IDLE_POLL_MS
48
+ });
107
49
 
108
50
  /**
109
51
  * Asks for notification permission the moment the sheet opens, then
@@ -112,7 +54,7 @@ export function SupportButton(props) {
112
54
  * support flow waits on it or breaks if it fails.
113
55
  */
114
56
  const syncPushPermission = useCallback(async () => {
115
- if (validationError || !isPushAvailable) return;
57
+ if (validationError !== null || !isPushAvailable) return;
116
58
  try {
117
59
  const registration = await ensurePushPermission(props.expoProjectId);
118
60
  await registerPush(config, {
@@ -125,14 +67,11 @@ export function SupportButton(props) {
125
67
  // Push is an enhancement — never surfaced to the user as an error.
126
68
  }
127
69
  }, [config, props.user.revenuecatId, props.expoProjectId, validationError]);
128
-
129
- // …and on sheet open.
130
70
  function openSheet() {
131
71
  setScreen({
132
72
  name: 'home'
133
73
  });
134
74
  setSheetOpen(true);
135
- void refresh();
136
75
  // The OS prompt appears right as the sheet opens; if the user declines,
137
76
  // everything below carries on exactly as before.
138
77
  void syncPushPermission();
@@ -143,7 +82,7 @@ export function SupportButton(props) {
143
82
  name: 'home'
144
83
  });
145
84
  }
146
- if (validationError) {
85
+ if (validationError !== null) {
147
86
  // Dev-mode: loud and actionable. Production: render nothing rather than
148
87
  // a broken button.
149
88
  if (__DEV__) {
@@ -166,26 +105,6 @@ export function SupportButton(props) {
166
105
  }
167
106
  return null;
168
107
  }
169
- function openThread(thread) {
170
- setScreen({
171
- name: 'thread',
172
- threadId: thread.id
173
- });
174
- if (thread.unread_count > 0) {
175
- // Optimistically clear the badge; persist via mark-read.
176
- setThreads(prev => prev?.map(t => t.id === thread.id ? {
177
- ...t,
178
- unread_count: 0
179
- } : t) ?? null);
180
- setTotalUnread(n => Math.max(0, n - thread.unread_count));
181
- void markRead(config, {
182
- queryId: thread.id,
183
- revenuecatId: props.user.revenuecatId
184
- }).catch(() => {
185
- // Non-fatal: the next get-threads reconciles the badge.
186
- });
187
- }
188
- }
189
108
  function writeErrorMessage(e) {
190
109
  if (e instanceof SupportApiError) {
191
110
  if (e.status === 429) return 'Too many requests — try again later';
@@ -203,7 +122,7 @@ export function SupportButton(props) {
203
122
  revenuecatId: props.user.revenuecatId,
204
123
  appVersion: props.user.appVersion
205
124
  });
206
- void refresh();
125
+ void reload();
207
126
  return null;
208
127
  } catch (e) {
209
128
  return writeErrorMessage(e);
@@ -216,99 +135,58 @@ export function SupportButton(props) {
216
135
  revenuecatId: props.user.revenuecatId,
217
136
  message
218
137
  });
219
- await refresh();
138
+ await reload();
220
139
  return null;
221
140
  } catch (e) {
222
141
  return writeErrorMessage(e);
223
142
  }
224
143
  }
225
144
  const activeThread = screen.name === 'thread' ? (threads ?? []).find(t => t.id === screen.threadId) ?? null : null;
145
+ const home = /*#__PURE__*/_jsx(HomeScreen, {
146
+ theme: theme,
147
+ threads: threads,
148
+ loading: loading,
149
+ refreshing: refreshing,
150
+ error: error,
151
+ onRefresh: refresh,
152
+ onCompose: type => setScreen({
153
+ name: 'compose',
154
+ type
155
+ }),
156
+ onOpenThread: thread => setScreen({
157
+ name: 'thread',
158
+ threadId: thread.id
159
+ }),
160
+ onClose: closeSheet
161
+ });
226
162
  return /*#__PURE__*/_jsxs(_Fragment, {
227
- children: [/*#__PURE__*/_jsxs(Pressable, {
228
- onPress: openSheet,
229
- accessibilityRole: "button",
230
- accessibilityLabel: totalUnread > 0 ? `Support, ${totalUnread} unread ${totalUnread === 1 ? 'reply' : 'replies'}` : 'Support',
231
- style: ({
232
- pressed
233
- }) => ({
234
- width: 44,
235
- height: 44,
236
- borderRadius: 22,
237
- borderWidth: 1,
238
- borderColor: theme.colors.border,
239
- backgroundColor: pressed ? theme.colors.surfaceHover : theme.colors.surface,
240
- alignItems: 'center',
241
- justifyContent: 'center'
242
- }),
243
- children: [/*#__PURE__*/_jsx(BubbleMark, {
244
- color: theme.colors.textPrimary,
245
- size: 18
246
- }), totalUnread > 0 && /*#__PURE__*/_jsx(View, {
247
- style: {
248
- position: 'absolute',
249
- top: -3,
250
- right: -3,
251
- minWidth: 16,
252
- height: 16,
253
- borderRadius: 8,
254
- paddingHorizontal: 4,
255
- backgroundColor: theme.colors.accent,
256
- alignItems: 'center',
257
- justifyContent: 'center'
258
- },
259
- children: /*#__PURE__*/_jsx(Text, {
260
- style: {
261
- fontSize: 10,
262
- fontWeight: '600',
263
- color: theme.colors.accentForeground,
264
- fontVariant: ['tabular-nums']
265
- },
266
- children: totalUnread > 9 ? '9+' : totalUnread
267
- })
268
- })]
163
+ children: [/*#__PURE__*/_jsx(LauncherButton, {
164
+ theme: theme,
165
+ unread: totalUnread,
166
+ variant: props.variant,
167
+ size: props.size,
168
+ label: props.label,
169
+ style: props.style,
170
+ onPress: openSheet
269
171
  }), /*#__PURE__*/_jsxs(BottomSheet, {
270
172
  visible: sheetOpen,
271
173
  onClose: closeSheet,
272
174
  theme: theme,
273
- children: [screen.name === 'home' && /*#__PURE__*/_jsx(HomeScreen, {
274
- theme: theme,
275
- threads: threads,
276
- loading: loading,
277
- error: error,
278
- onRetry: () => void refresh(),
279
- onCompose: type => setScreen({
280
- name: 'compose',
281
- type
282
- }),
283
- onOpenThread: openThread,
284
- onClose: closeSheet
285
- }), screen.name === 'compose' && /*#__PURE__*/_jsx(ComposeScreen, {
175
+ children: [screen.name === 'home' && home, screen.name === 'compose' && /*#__PURE__*/_jsx(ComposeScreen, {
286
176
  theme: theme,
287
177
  type: screen.type,
288
178
  onBack: () => setScreen({
289
179
  name: 'home'
290
180
  }),
291
181
  onSubmit: message => handleSubmit(screen.type, message)
292
- }), screen.name === 'thread' && (activeThread ? /*#__PURE__*/_jsx(ThreadScreen, {
182
+ }), screen.name === 'thread' && (activeThread !== null ? /*#__PURE__*/_jsx(ThreadScreen, {
293
183
  theme: theme,
294
184
  thread: activeThread,
295
185
  onBack: () => setScreen({
296
186
  name: 'home'
297
187
  }),
298
188
  onSend: message => handleSend(activeThread.id, message)
299
- }) : /*#__PURE__*/_jsx(HomeScreen, {
300
- theme: theme,
301
- threads: threads,
302
- loading: loading,
303
- error: error,
304
- onRetry: () => void refresh(),
305
- onCompose: type => setScreen({
306
- name: 'compose',
307
- type
308
- }),
309
- onOpenThread: openThread,
310
- onClose: closeSheet
311
- }))]
189
+ }) : home)]
312
190
  })]
313
191
  });
314
192
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","AppState","Pressable","Text","View","getThreads","getUnreadCount","markRead","postMessage","registerPush","submitQuery","SupportApiError","ensurePushPermission","isPushAvailable","resolveTheme","validateProps","BottomSheet","BubbleMark","ComposeScreen","HomeScreen","ThreadScreen","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","THREAD_POLL_MS","SHEET_POLL_MS","IDLE_POLL_MS","MIN_POLL_MS","SupportButton","props","validationError","theme","config","supabaseUrl","apiKey","appName","sheetOpen","setSheetOpen","screen","setScreen","name","threads","setThreads","totalUnread","setTotalUnread","loading","setLoading","error","setError","mounted","current","refresh","data","user","revenuecatId","total_unread","e","offline","refreshBadge","idlePollMs","pollIntervalMs","screenName","idle","intervalMs","tick","timer","setInterval","Math","max","appStateSub","addEventListener","state","clearInterval","remove","syncPushPermission","registration","expoProjectId","permissionStatus","status","expoPushToken","token","asked","openSheet","closeSheet","__DEV__","console","style","padding","borderWidth","borderColor","colors","statusDanger","borderRadius","radii","control","children","fontSize","color","openThread","thread","threadId","id","unread_count","prev","map","t","n","queryId","catch","writeErrorMessage","handleSubmit","type","message","queryType","userName","isPaid","appVersion","handleSend","activeThread","find","onPress","accessibilityRole","accessibilityLabel","pressed","width","height","border","backgroundColor","surfaceHover","surface","alignItems","justifyContent","textPrimary","size","position","top","right","minWidth","paddingHorizontal","accent","fontWeight","accentForeground","fontVariant","visible","onClose","onRetry","onCompose","onOpenThread","onBack","onSubmit","onSend"],"sourceRoot":"../../../src","sources":["components/SupportButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useState","Text","View","postMessage","registerPush","submitQuery","SupportApiError","ensurePushPermission","isPushAvailable","resolveTheme","IDLE_POLL_MS","useSupportThreads","validateProps","BottomSheet","LauncherButton","ComposeScreen","HomeScreen","ThreadScreen","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SupportButton","props","validationError","theme","accentColor","config","supabaseUrl","apiKey","appName","sheetOpen","setSheetOpen","screen","setScreen","name","threads","totalUnread","loading","refreshing","error","refresh","reload","revenuecatId","user","enabled","activeThreadId","threadId","idlePollMs","pollIntervalMs","syncPushPermission","registration","expoProjectId","permissionStatus","status","expoPushToken","token","asked","openSheet","closeSheet","__DEV__","console","style","padding","borderWidth","borderColor","colors","statusDanger","borderRadius","radii","control","children","fontSize","color","writeErrorMessage","e","offline","handleSubmit","type","message","queryType","userName","isPaid","appVersion","handleSend","queryId","activeThread","find","t","id","home","onRefresh","onCompose","onOpenThread","thread","onClose","unread","variant","size","label","onPress","visible","onBack","onSubmit","onSend"],"sourceRoot":"../../../src","sources":["components/SupportButton.tsx"],"mappings":"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","ignoreList":[]}