@appsupportkit/support-sdk 0.3.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.
Files changed (208) hide show
  1. package/lib/commonjs/api.js +49 -15
  2. package/lib/commonjs/api.js.map +1 -1
  3. package/lib/commonjs/components/BottomSheet.js +1 -1
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  5. package/lib/commonjs/components/LauncherButton.js +4 -4
  6. package/lib/commonjs/components/LauncherButton.js.map +1 -1
  7. package/lib/commonjs/components/SupportButton.js +123 -97
  8. package/lib/commonjs/components/SupportButton.js.map +1 -1
  9. package/lib/commonjs/components/icons.js +81 -110
  10. package/lib/commonjs/components/icons.js.map +1 -1
  11. package/lib/commonjs/components/primitives.js +0 -153
  12. package/lib/commonjs/components/primitives.js.map +1 -1
  13. package/lib/commonjs/components/screens/ChatScreen.js +487 -0
  14. package/lib/commonjs/components/screens/ChatScreen.js.map +1 -0
  15. package/lib/commonjs/i18n/strings/de.js +3 -0
  16. package/lib/commonjs/i18n/strings/de.js.map +1 -1
  17. package/lib/commonjs/i18n/strings/en.js +3 -0
  18. package/lib/commonjs/i18n/strings/en.js.map +1 -1
  19. package/lib/commonjs/i18n/strings/es.js +3 -0
  20. package/lib/commonjs/i18n/strings/es.js.map +1 -1
  21. package/lib/commonjs/i18n/strings/fr.js +3 -0
  22. package/lib/commonjs/i18n/strings/fr.js.map +1 -1
  23. package/lib/commonjs/i18n/strings/hi.js +3 -0
  24. package/lib/commonjs/i18n/strings/hi.js.map +1 -1
  25. package/lib/commonjs/i18n/strings/it.js +3 -0
  26. package/lib/commonjs/i18n/strings/it.js.map +1 -1
  27. package/lib/commonjs/i18n/strings/ja.js +3 -0
  28. package/lib/commonjs/i18n/strings/ja.js.map +1 -1
  29. package/lib/commonjs/i18n/strings/ko.js +3 -0
  30. package/lib/commonjs/i18n/strings/ko.js.map +1 -1
  31. package/lib/commonjs/i18n/strings/nl.js +3 -0
  32. package/lib/commonjs/i18n/strings/nl.js.map +1 -1
  33. package/lib/commonjs/i18n/strings/pl.js +3 -0
  34. package/lib/commonjs/i18n/strings/pl.js.map +1 -1
  35. package/lib/commonjs/i18n/strings/pt.js +3 -0
  36. package/lib/commonjs/i18n/strings/pt.js.map +1 -1
  37. package/lib/commonjs/i18n/strings/ru.js +3 -0
  38. package/lib/commonjs/i18n/strings/ru.js.map +1 -1
  39. package/lib/commonjs/i18n/strings/tr.js +3 -0
  40. package/lib/commonjs/i18n/strings/tr.js.map +1 -1
  41. package/lib/commonjs/i18n/strings/zh.js +3 -0
  42. package/lib/commonjs/i18n/strings/zh.js.map +1 -1
  43. package/lib/commonjs/index.js +7 -0
  44. package/lib/commonjs/index.js.map +1 -1
  45. package/lib/commonjs/push.js +78 -3
  46. package/lib/commonjs/push.js.map +1 -1
  47. package/lib/commonjs/review.js +54 -0
  48. package/lib/commonjs/review.js.map +1 -0
  49. package/lib/commonjs/theme.js +142 -23
  50. package/lib/commonjs/theme.js.map +1 -1
  51. package/lib/commonjs/types.js +21 -3
  52. package/lib/commonjs/types.js.map +1 -1
  53. package/lib/commonjs/useSupportThreads.js +22 -15
  54. package/lib/commonjs/useSupportThreads.js.map +1 -1
  55. package/lib/commonjs/utils.js +13 -33
  56. package/lib/commonjs/utils.js.map +1 -1
  57. package/lib/commonjs/version.js +13 -0
  58. package/lib/commonjs/version.js.map +1 -0
  59. package/lib/module/api.js +46 -13
  60. package/lib/module/api.js.map +1 -1
  61. package/lib/module/components/BottomSheet.js +1 -1
  62. package/lib/module/components/BottomSheet.js.map +1 -1
  63. package/lib/module/components/LauncherButton.js +5 -5
  64. package/lib/module/components/LauncherButton.js.map +1 -1
  65. package/lib/module/components/SupportButton.js +128 -102
  66. package/lib/module/components/SupportButton.js.map +1 -1
  67. package/lib/module/components/icons.js +80 -107
  68. package/lib/module/components/icons.js.map +1 -1
  69. package/lib/module/components/primitives.js +2 -146
  70. package/lib/module/components/primitives.js.map +1 -1
  71. package/lib/module/components/screens/ChatScreen.js +485 -0
  72. package/lib/module/components/screens/ChatScreen.js.map +1 -0
  73. package/lib/module/i18n/strings/de.js +3 -0
  74. package/lib/module/i18n/strings/de.js.map +1 -1
  75. package/lib/module/i18n/strings/en.js +3 -0
  76. package/lib/module/i18n/strings/en.js.map +1 -1
  77. package/lib/module/i18n/strings/es.js +3 -0
  78. package/lib/module/i18n/strings/es.js.map +1 -1
  79. package/lib/module/i18n/strings/fr.js +3 -0
  80. package/lib/module/i18n/strings/fr.js.map +1 -1
  81. package/lib/module/i18n/strings/hi.js +3 -0
  82. package/lib/module/i18n/strings/hi.js.map +1 -1
  83. package/lib/module/i18n/strings/it.js +3 -0
  84. package/lib/module/i18n/strings/it.js.map +1 -1
  85. package/lib/module/i18n/strings/ja.js +3 -0
  86. package/lib/module/i18n/strings/ja.js.map +1 -1
  87. package/lib/module/i18n/strings/ko.js +3 -0
  88. package/lib/module/i18n/strings/ko.js.map +1 -1
  89. package/lib/module/i18n/strings/nl.js +3 -0
  90. package/lib/module/i18n/strings/nl.js.map +1 -1
  91. package/lib/module/i18n/strings/pl.js +3 -0
  92. package/lib/module/i18n/strings/pl.js.map +1 -1
  93. package/lib/module/i18n/strings/pt.js +3 -0
  94. package/lib/module/i18n/strings/pt.js.map +1 -1
  95. package/lib/module/i18n/strings/ru.js +3 -0
  96. package/lib/module/i18n/strings/ru.js.map +1 -1
  97. package/lib/module/i18n/strings/tr.js +3 -0
  98. package/lib/module/i18n/strings/tr.js.map +1 -1
  99. package/lib/module/i18n/strings/zh.js +3 -0
  100. package/lib/module/i18n/strings/zh.js.map +1 -1
  101. package/lib/module/index.js +1 -0
  102. package/lib/module/index.js.map +1 -1
  103. package/lib/module/push.js +77 -3
  104. package/lib/module/push.js.map +1 -1
  105. package/lib/module/review.js +48 -0
  106. package/lib/module/review.js.map +1 -0
  107. package/lib/module/theme.js +141 -23
  108. package/lib/module/theme.js.map +1 -1
  109. package/lib/module/types.js +21 -3
  110. package/lib/module/types.js.map +1 -1
  111. package/lib/module/useSupportThreads.js +22 -15
  112. package/lib/module/useSupportThreads.js.map +1 -1
  113. package/lib/module/utils.js +12 -32
  114. package/lib/module/utils.js.map +1 -1
  115. package/lib/module/version.js +9 -0
  116. package/lib/module/version.js.map +1 -0
  117. package/lib/typescript/api.d.ts +33 -12
  118. package/lib/typescript/api.d.ts.map +1 -1
  119. package/lib/typescript/components/SupportButton.d.ts +2 -2
  120. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  121. package/lib/typescript/components/icons.d.ts +5 -14
  122. package/lib/typescript/components/icons.d.ts.map +1 -1
  123. package/lib/typescript/components/primitives.d.ts +0 -31
  124. package/lib/typescript/components/primitives.d.ts.map +1 -1
  125. package/lib/typescript/components/screens/ChatScreen.d.ts +21 -0
  126. package/lib/typescript/components/screens/ChatScreen.d.ts.map +1 -0
  127. package/lib/typescript/i18n/strings/de.d.ts.map +1 -1
  128. package/lib/typescript/i18n/strings/en.d.ts +3 -0
  129. package/lib/typescript/i18n/strings/en.d.ts.map +1 -1
  130. package/lib/typescript/i18n/strings/es.d.ts.map +1 -1
  131. package/lib/typescript/i18n/strings/fr.d.ts.map +1 -1
  132. package/lib/typescript/i18n/strings/hi.d.ts.map +1 -1
  133. package/lib/typescript/i18n/strings/it.d.ts.map +1 -1
  134. package/lib/typescript/i18n/strings/ja.d.ts.map +1 -1
  135. package/lib/typescript/i18n/strings/ko.d.ts.map +1 -1
  136. package/lib/typescript/i18n/strings/nl.d.ts.map +1 -1
  137. package/lib/typescript/i18n/strings/pl.d.ts.map +1 -1
  138. package/lib/typescript/i18n/strings/pt.d.ts.map +1 -1
  139. package/lib/typescript/i18n/strings/ru.d.ts.map +1 -1
  140. package/lib/typescript/i18n/strings/tr.d.ts.map +1 -1
  141. package/lib/typescript/i18n/strings/zh.d.ts.map +1 -1
  142. package/lib/typescript/index.d.ts +3 -2
  143. package/lib/typescript/index.d.ts.map +1 -1
  144. package/lib/typescript/push.d.ts +14 -2
  145. package/lib/typescript/push.d.ts.map +1 -1
  146. package/lib/typescript/review.d.ts +15 -0
  147. package/lib/typescript/review.d.ts.map +1 -0
  148. package/lib/typescript/theme.d.ts +23 -5
  149. package/lib/typescript/theme.d.ts.map +1 -1
  150. package/lib/typescript/types.d.ts +54 -11
  151. package/lib/typescript/types.d.ts.map +1 -1
  152. package/lib/typescript/useSupportThreads.d.ts +9 -3
  153. package/lib/typescript/useSupportThreads.d.ts.map +1 -1
  154. package/lib/typescript/utils.d.ts +3 -2
  155. package/lib/typescript/utils.d.ts.map +1 -1
  156. package/lib/typescript/version.d.ts +7 -0
  157. package/lib/typescript/version.d.ts.map +1 -0
  158. package/package.json +1 -1
  159. package/src/api.ts +59 -30
  160. package/src/components/BottomSheet.tsx +1 -1
  161. package/src/components/LauncherButton.tsx +4 -4
  162. package/src/components/SupportButton.tsx +140 -111
  163. package/src/components/icons.tsx +60 -101
  164. package/src/components/primitives.tsx +1 -163
  165. package/src/components/screens/ChatScreen.tsx +541 -0
  166. package/src/i18n/strings/de.ts +3 -0
  167. package/src/i18n/strings/en.ts +3 -0
  168. package/src/i18n/strings/es.ts +3 -0
  169. package/src/i18n/strings/fr.ts +3 -0
  170. package/src/i18n/strings/hi.ts +3 -0
  171. package/src/i18n/strings/it.ts +3 -0
  172. package/src/i18n/strings/ja.ts +3 -0
  173. package/src/i18n/strings/ko.ts +3 -0
  174. package/src/i18n/strings/nl.ts +3 -0
  175. package/src/i18n/strings/pl.ts +3 -0
  176. package/src/i18n/strings/pt.ts +3 -0
  177. package/src/i18n/strings/ru.ts +3 -0
  178. package/src/i18n/strings/tr.ts +3 -0
  179. package/src/i18n/strings/zh.ts +3 -0
  180. package/src/index.tsx +5 -0
  181. package/src/push.ts +100 -2
  182. package/src/review.ts +54 -0
  183. package/src/theme.ts +182 -28
  184. package/src/types.ts +53 -11
  185. package/src/useSupportThreads.ts +31 -18
  186. package/src/utils.ts +14 -21
  187. package/src/version.ts +6 -0
  188. package/lib/commonjs/components/screens/ComposeScreen.js +0 -219
  189. package/lib/commonjs/components/screens/ComposeScreen.js.map +0 -1
  190. package/lib/commonjs/components/screens/HomeScreen.js +0 -334
  191. package/lib/commonjs/components/screens/HomeScreen.js.map +0 -1
  192. package/lib/commonjs/components/screens/ThreadScreen.js +0 -339
  193. package/lib/commonjs/components/screens/ThreadScreen.js.map +0 -1
  194. package/lib/module/components/screens/ComposeScreen.js +0 -217
  195. package/lib/module/components/screens/ComposeScreen.js.map +0 -1
  196. package/lib/module/components/screens/HomeScreen.js +0 -330
  197. package/lib/module/components/screens/HomeScreen.js.map +0 -1
  198. package/lib/module/components/screens/ThreadScreen.js +0 -337
  199. package/lib/module/components/screens/ThreadScreen.js.map +0 -1
  200. package/lib/typescript/components/screens/ComposeScreen.d.ts +0 -12
  201. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +0 -1
  202. package/lib/typescript/components/screens/HomeScreen.d.ts +0 -19
  203. package/lib/typescript/components/screens/HomeScreen.d.ts.map +0 -1
  204. package/lib/typescript/components/screens/ThreadScreen.d.ts +0 -12
  205. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +0 -1
  206. package/src/components/screens/ComposeScreen.tsx +0 -229
  207. package/src/components/screens/HomeScreen.tsx +0 -346
  208. package/src/components/screens/ThreadScreen.tsx +0 -424
@@ -1,339 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ThreadScreen = ThreadScreen;
7
- var _react = require("react");
8
- var _reactNative = require("react-native");
9
- var _types = require("../../types");
10
- var _utils = require("../../utils");
11
- var _icons = require("../icons");
12
- var _primitives = require("../primitives");
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- /** Consecutive messages from one sender inside this window form a group. */const GROUP_WINDOW_MS = 5 * 60 * 1000;
15
- /** The counter only appears once the limit is actually in play. */
16
- const COUNTER_VISIBLE_FROM = _types.USER_MESSAGE_MAX - 60;
17
- function buildRows(messages, unreadCount, strings) {
18
- // Unread messages are always the newest admin ones, so the divider goes
19
- // above the Nth-from-last admin message.
20
- let remaining = unreadCount;
21
- let firstUnreadId = null;
22
- for (let i = messages.length - 1; i >= 0 && remaining > 0; i -= 1) {
23
- const candidate = messages[i];
24
- if (candidate === undefined || candidate.sender !== 'admin') continue;
25
- remaining -= 1;
26
- firstUnreadId = candidate.id;
27
- }
28
- return messages.map((message, i) => {
29
- const previous = i > 0 ? messages[i - 1] ?? null : null;
30
- const next = i < messages.length - 1 ? messages[i + 1] ?? null : null;
31
- // Grouped by sender alone. Two replies from two different admins are two
32
- // messages from "Support" as far as this side is concerned, so breaking
33
- // the group between them would be a visible seam with no visible cause.
34
- const withinGroup = (a, b) => a !== null && a.sender === b.sender && Math.abs(Date.parse(b.created_at) - Date.parse(a.created_at)) < GROUP_WINDOW_MS;
35
- const day = previous === null || !(0, _utils.isSameDay)(previous.created_at, message.created_at) ? (0, _utils.dayLabel)(message.created_at, strings) : null;
36
- const startsUnread = message.id === firstUnreadId;
37
- return {
38
- message,
39
- // A separator always breaks a group.
40
- firstInGroup: day !== null || startsUnread || !withinGroup(previous, message),
41
- lastInGroup: next === null || next.id === firstUnreadId || !(0, _utils.isSameDay)(next.created_at, message.created_at) || !withinGroup(next, message),
42
- day,
43
- startsUnread
44
- };
45
- });
46
- }
47
- function Separator({
48
- label,
49
- theme,
50
- tone = 'muted'
51
- }) {
52
- const color = tone === 'accent' ? theme.colors.accent : theme.colors.textTertiary;
53
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
54
- style: {
55
- flexDirection: 'row',
56
- alignItems: 'center',
57
- gap: 10,
58
- paddingVertical: 6
59
- },
60
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
61
- style: {
62
- flex: 1,
63
- height: 1,
64
- backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
65
- }
66
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
- style: {
68
- fontSize: 11,
69
- fontWeight: '600',
70
- letterSpacing: 0.3,
71
- color
72
- },
73
- children: label
74
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
75
- style: {
76
- flex: 1,
77
- height: 1,
78
- backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
79
- }
80
- })]
81
- });
82
- }
83
- function MessageBubble({
84
- row,
85
- theme,
86
- strings
87
- }) {
88
- const {
89
- message,
90
- firstInGroup,
91
- lastInGroup
92
- } = row;
93
- const own = message.sender === 'user';
94
- const round = theme.radii.bubble;
95
- const tight = theme.radii.bubbleTail;
96
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
97
- style: {
98
- maxWidth: '86%',
99
- alignSelf: own ? 'flex-end' : 'flex-start',
100
- alignItems: own ? 'flex-end' : 'flex-start',
101
- marginTop: firstInGroup ? 10 : 2,
102
- gap: 4
103
- },
104
- children: [!own && firstInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
105
- style: [_primitives.textStyles.meta(theme), {
106
- paddingHorizontal: 4
107
- }],
108
- children: strings.t('thread.support')
109
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
110
- style: {
111
- paddingHorizontal: 14,
112
- paddingVertical: 10,
113
- backgroundColor: own ? theme.colors.accent : theme.colors.surface,
114
- borderWidth: own ? 0 : 1,
115
- borderColor: theme.colors.border,
116
- borderTopLeftRadius: own || firstInGroup ? round : tight,
117
- borderBottomLeftRadius: own || lastInGroup ? round : tight,
118
- borderTopRightRadius: !own || firstInGroup ? round : tight,
119
- borderBottomRightRadius: !own || lastInGroup ? round : tight
120
- },
121
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
122
- style: [_primitives.textStyles.body(theme), own && {
123
- color: theme.colors.accentForeground
124
- }],
125
- children: message.body
126
- })
127
- }), lastInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
128
- style: [_primitives.textStyles.meta(theme), {
129
- paddingHorizontal: 4
130
- }],
131
- children: message.translation_pending ? strings.t('thread.translating') : (0, _utils.formatTime)(message.created_at, strings)
132
- })]
133
- });
134
- }
135
- function ThreadScreen({
136
- theme,
137
- strings,
138
- thread,
139
- onBack,
140
- onSend
141
- }) {
142
- const [draft, setDraft] = (0, _react.useState)('');
143
- const [sending, setSending] = (0, _react.useState)(false);
144
- const [failedMessage, setFailedMessage] = (0, _react.useState)(null);
145
- const scrollRef = (0, _react.useRef)(null);
146
- // Captured once: opening the thread marks it read within a tick, but the
147
- // "New" divider should stay put while the user is reading.
148
- const [unreadOnOpen] = (0, _react.useState)(thread.unread_count);
149
- const resolved = thread.status === 'resolved';
150
- const trimmed = draft.trim();
151
- const valid = trimmed.length >= _types.USER_MESSAGE_MIN && trimmed.length <= _types.USER_MESSAGE_MAX;
152
- const tooShort = trimmed.length > 0 && trimmed.length < _types.USER_MESSAGE_MIN;
153
- const rows = (0, _react.useMemo)(() => buildRows(thread.messages, unreadOnOpen, strings), [thread.messages, unreadOnOpen, strings]);
154
- (0, _react.useEffect)(() => {
155
- scrollRef.current?.scrollToEnd({
156
- animated: false
157
- });
158
- }, [thread.messages.length]);
159
- async function handleSend() {
160
- if (!valid || sending || resolved) return;
161
- setSending(true);
162
- setFailedMessage(null);
163
- const errorMessage = await onSend(trimmed);
164
- setSending(false);
165
- if (errorMessage === null) setDraft('');else setFailedMessage(errorMessage);
166
- }
167
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
168
- style: {
169
- flex: 1
170
- },
171
- behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
172
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
173
- style: {
174
- flexDirection: 'row',
175
- alignItems: 'center',
176
- gap: 10,
177
- paddingHorizontal: 12,
178
- paddingBottom: 12,
179
- borderBottomWidth: 1,
180
- borderBottomColor: theme.colors.border
181
- },
182
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
183
- onPress: onBack,
184
- theme: theme,
185
- accessibilityLabel: strings.t('compose.back'),
186
- size: 32,
187
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
188
- color: theme.colors.textSecondary,
189
- direction: "left",
190
- size: 12
191
- })
192
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TypeChipView, {
193
- type: thread.type,
194
- theme: theme,
195
- strings: strings
196
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.StatusIndicator, {
197
- status: thread.status,
198
- theme: theme,
199
- strings: strings
200
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
201
- style: [_primitives.textStyles.meta(theme), {
202
- marginLeft: 'auto'
203
- }],
204
- children: (0, _utils.relativeTime)(thread.created_at, strings)
205
- })]
206
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
207
- ref: scrollRef,
208
- style: {
209
- flex: 1
210
- },
211
- contentContainerStyle: {
212
- paddingHorizontal: 16,
213
- paddingVertical: 12
214
- },
215
- keyboardShouldPersistTaps: "handled",
216
- onContentSizeChange: () => scrollRef.current?.scrollToEnd({
217
- animated: false
218
- }),
219
- children: [rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
220
- children: [row.day !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
221
- label: row.day,
222
- theme: theme
223
- }), row.startsUnread && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
224
- label: strings.t('thread.new'),
225
- theme: theme,
226
- tone: "accent"
227
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageBubble, {
228
- row: row,
229
- theme: theme,
230
- strings: strings
231
- })]
232
- }, row.message.id)), resolved && thread.resolved_at !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
233
- style: {
234
- marginTop: 16
235
- },
236
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
237
- label: strings.t('thread.resolvedAt', {
238
- date: (0, _utils.formatDate)(thread.resolved_at, strings)
239
- }),
240
- theme: theme
241
- })
242
- })]
243
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
244
- style: {
245
- borderTopWidth: 1,
246
- borderTopColor: theme.colors.border,
247
- paddingHorizontal: 16,
248
- paddingTop: 10,
249
- paddingBottom: 4
250
- },
251
- children: resolved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
252
- style: {
253
- alignItems: 'center',
254
- paddingVertical: 10,
255
- borderRadius: theme.radii.control,
256
- backgroundColor: theme.colors.surface
257
- },
258
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
259
- style: _primitives.textStyles.secondary(theme),
260
- children: strings.t('thread.readOnly')
261
- })
262
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
263
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
264
- style: {
265
- flexDirection: 'row',
266
- alignItems: 'flex-end',
267
- gap: 10
268
- },
269
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
270
- value: draft,
271
- onChangeText: v => {
272
- setDraft(v);
273
- setFailedMessage(null);
274
- },
275
- multiline: true,
276
- editable: !sending,
277
- placeholder: strings.t('thread.placeholder'),
278
- placeholderTextColor: theme.colors.textTertiary,
279
- style: {
280
- flex: 1,
281
- minHeight: 44,
282
- maxHeight: 120,
283
- borderWidth: 1,
284
- borderColor: theme.colors.border,
285
- borderRadius: theme.radii.cardLg,
286
- backgroundColor: theme.colors.surface,
287
- color: theme.colors.textPrimary,
288
- fontSize: 15,
289
- lineHeight: 20,
290
- paddingHorizontal: 14,
291
- paddingTop: 12,
292
- paddingBottom: 12,
293
- textAlignVertical: 'top'
294
- }
295
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
296
- onPress: handleSend,
297
- theme: theme,
298
- tone: "accent",
299
- size: 44,
300
- disabled: !valid || sending,
301
- accessibilityLabel: strings.t(sending ? 'thread.sendingA11y' : 'thread.sendA11y'),
302
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ArrowUpIcon, {
303
- color: theme.colors.accentForeground,
304
- size: 19
305
- })
306
- })]
307
- }), (tooShort || draft.length >= COUNTER_VISIBLE_FROM || failedMessage !== null) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
308
- style: {
309
- flexDirection: 'row',
310
- alignItems: 'center',
311
- gap: 10,
312
- paddingTop: 8,
313
- paddingHorizontal: 4
314
- },
315
- children: [failedMessage !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
316
- style: {
317
- fontSize: 12,
318
- color: theme.colors.statusDanger
319
- },
320
- children: failedMessage
321
- }) : tooShort ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
322
- style: _primitives.textStyles.meta(theme),
323
- children: strings.t('compose.minChars', {
324
- count: _types.USER_MESSAGE_MIN
325
- })
326
- }) : null, draft.length >= COUNTER_VISIBLE_FROM && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
327
- style: [_primitives.textStyles.meta(theme), {
328
- marginLeft: 'auto'
329
- }, draft.length > _types.USER_MESSAGE_MAX && {
330
- color: theme.colors.statusDanger
331
- }],
332
- children: [draft.length, "/", _types.USER_MESSAGE_MAX]
333
- })]
334
- })]
335
- })
336
- })]
337
- });
338
- }
339
- //# sourceMappingURL=ThreadScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNative","_types","_utils","_icons","_primitives","_jsxRuntime","GROUP_WINDOW_MS","COUNTER_VISIBLE_FROM","USER_MESSAGE_MAX","buildRows","messages","unreadCount","strings","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","Math","abs","Date","parse","created_at","day","isSameDay","dayLabel","startsUnread","firstInGroup","lastInGroup","Separator","label","theme","tone","color","colors","accent","textTertiary","jsxs","View","style","flexDirection","alignItems","gap","paddingVertical","children","jsx","flex","height","backgroundColor","accentMuted","border","Text","fontSize","fontWeight","letterSpacing","MessageBubble","row","own","round","radii","bubble","tight","bubbleTail","maxWidth","alignSelf","marginTop","textStyles","meta","paddingHorizontal","t","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","translation_pending","formatTime","ThreadScreen","thread","onBack","onSend","draft","setDraft","useState","sending","setSending","failedMessage","setFailedMessage","scrollRef","useRef","unreadOnOpen","unread_count","resolved","status","trimmed","trim","valid","USER_MESSAGE_MIN","tooShort","rows","useMemo","useEffect","current","scrollToEnd","animated","handleSend","errorMessage","KeyboardAvoidingView","behavior","Platform","OS","paddingBottom","borderBottomWidth","borderBottomColor","IconButton","onPress","accessibilityLabel","size","Chevron","textSecondary","direction","TypeChipView","type","StatusIndicator","marginLeft","relativeTime","ScrollView","ref","contentContainerStyle","keyboardShouldPersistTaps","onContentSizeChange","resolved_at","date","formatDate","borderTopWidth","borderTopColor","paddingTop","borderRadius","control","secondary","Fragment","TextInput","value","onChangeText","v","multiline","editable","placeholder","placeholderTextColor","minHeight","maxHeight","cardLg","textPrimary","lineHeight","textAlignVertical","disabled","ArrowUpIcon","statusDanger","count"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,217 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect, useRef, useState } from 'react';
4
- import { Animated, Easing, KeyboardAvoidingView, Platform, Text, TextInput, View } from 'react-native';
5
- import { USER_MESSAGE_MAX, USER_MESSAGE_MIN } from '../../types';
6
- import { CheckIcon, Chevron } from '../icons';
7
- import { IconButton, PrimaryButton, textStyles, TypeGlyph } from '../primitives';
8
-
9
- /** Scales in once on success — the only celebratory motion in the SDK. */
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- function SentMark({
12
- theme
13
- }) {
14
- const scale = useRef(new Animated.Value(0.6)).current;
15
- const opacity = useRef(new Animated.Value(0)).current;
16
- useEffect(() => {
17
- Animated.parallel([Animated.timing(scale, {
18
- toValue: 1,
19
- duration: 320,
20
- easing: Easing.bezier(0.16, 1, 0.3, 1),
21
- useNativeDriver: true
22
- }), Animated.timing(opacity, {
23
- toValue: 1,
24
- duration: 200,
25
- easing: Easing.out(Easing.cubic),
26
- useNativeDriver: true
27
- })]).start();
28
- }, [scale, opacity]);
29
- return /*#__PURE__*/_jsx(Animated.View, {
30
- style: {
31
- width: 56,
32
- height: 56,
33
- borderRadius: 28,
34
- backgroundColor: theme.colors.statusResolvedBg,
35
- borderWidth: 1,
36
- borderColor: theme.colors.statusResolved,
37
- alignItems: 'center',
38
- justifyContent: 'center',
39
- opacity,
40
- transform: [{
41
- scale
42
- }]
43
- },
44
- children: /*#__PURE__*/_jsx(CheckIcon, {
45
- color: theme.colors.statusResolved,
46
- size: 20
47
- })
48
- });
49
- }
50
- export function ComposeScreen({
51
- theme,
52
- strings,
53
- type,
54
- onBack,
55
- onSubmit
56
- }) {
57
- const [message, setMessage] = useState('');
58
- const [submitting, setSubmitting] = useState(false);
59
- const [failedMessage, setFailedMessage] = useState(null);
60
- const [sent, setSent] = useState(false);
61
- const trimmed = message.trim();
62
- const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
63
- const overLimit = message.length > USER_MESSAGE_MAX;
64
- const tooShort = trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN;
65
- async function handleSubmit() {
66
- if (!valid || submitting) return;
67
- setSubmitting(true);
68
- setFailedMessage(null);
69
- const errorMessage = await onSubmit(trimmed);
70
- setSubmitting(false);
71
- if (errorMessage === null) setSent(true);else setFailedMessage(errorMessage);
72
- }
73
- if (sent) {
74
- return /*#__PURE__*/_jsxs(View, {
75
- style: {
76
- flex: 1,
77
- alignItems: 'center',
78
- justifyContent: 'center',
79
- gap: 14,
80
- paddingHorizontal: 32,
81
- paddingBottom: 40
82
- },
83
- children: [/*#__PURE__*/_jsx(SentMark, {
84
- theme: theme
85
- }), /*#__PURE__*/_jsx(Text, {
86
- style: textStyles.title(theme),
87
- children: strings.t('compose.sent')
88
- }), /*#__PURE__*/_jsx(Text, {
89
- style: [textStyles.secondary(theme), {
90
- textAlign: 'center'
91
- }],
92
- children: strings.t('compose.sentHint')
93
- }), /*#__PURE__*/_jsx(View, {
94
- style: {
95
- marginTop: 6
96
- },
97
- children: /*#__PURE__*/_jsx(PrimaryButton, {
98
- label: strings.t('compose.done'),
99
- onPress: onBack,
100
- theme: theme
101
- })
102
- })]
103
- });
104
- }
105
- return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
106
- style: {
107
- flex: 1
108
- },
109
- behavior: Platform.OS === 'ios' ? 'padding' : undefined,
110
- children: [/*#__PURE__*/_jsxs(View, {
111
- style: {
112
- flexDirection: 'row',
113
- alignItems: 'center',
114
- gap: 10,
115
- paddingHorizontal: 12,
116
- paddingBottom: 14
117
- },
118
- children: [/*#__PURE__*/_jsx(IconButton, {
119
- onPress: onBack,
120
- theme: theme,
121
- accessibilityLabel: strings.t('compose.back'),
122
- size: 32,
123
- children: /*#__PURE__*/_jsx(Chevron, {
124
- color: theme.colors.textSecondary,
125
- direction: "left",
126
- size: 12
127
- })
128
- }), /*#__PURE__*/_jsx(TypeGlyph, {
129
- type: type,
130
- theme: theme,
131
- size: 32
132
- }), /*#__PURE__*/_jsxs(View, {
133
- style: {
134
- flex: 1,
135
- gap: 1
136
- },
137
- children: [/*#__PURE__*/_jsx(Text, {
138
- style: textStyles.heading(theme),
139
- children: strings.t(`type.${type}`)
140
- }), /*#__PURE__*/_jsx(Text, {
141
- style: textStyles.meta(theme),
142
- children: strings.t(`sub.${type}`)
143
- })]
144
- })]
145
- }), /*#__PURE__*/_jsxs(View, {
146
- style: {
147
- flex: 1,
148
- paddingHorizontal: 16
149
- },
150
- children: [/*#__PURE__*/_jsx(TextInput, {
151
- value: message,
152
- onChangeText: v => {
153
- setMessage(v);
154
- setFailedMessage(null);
155
- },
156
- multiline: true,
157
- autoFocus: true,
158
- editable: !submitting,
159
- placeholder: strings.t(`prompt.${type}`),
160
- placeholderTextColor: theme.colors.textTertiary,
161
- style: {
162
- minHeight: 140,
163
- maxHeight: 240,
164
- borderWidth: 1,
165
- borderColor: theme.colors.border,
166
- borderRadius: theme.radii.card,
167
- backgroundColor: theme.colors.surface,
168
- color: theme.colors.textPrimary,
169
- fontSize: 15,
170
- lineHeight: 21,
171
- padding: 14,
172
- textAlignVertical: 'top'
173
- }
174
- }), /*#__PURE__*/_jsxs(View, {
175
- style: {
176
- flexDirection: 'row',
177
- alignItems: 'center',
178
- gap: 10,
179
- paddingTop: 10,
180
- paddingHorizontal: 2,
181
- minHeight: 20
182
- },
183
- children: [failedMessage !== null ? /*#__PURE__*/_jsx(Text, {
184
- style: {
185
- fontSize: 12,
186
- color: theme.colors.statusDanger
187
- },
188
- children: failedMessage
189
- }) : tooShort ? /*#__PURE__*/_jsx(Text, {
190
- style: textStyles.meta(theme),
191
- children: strings.t('compose.minChars', {
192
- count: USER_MESSAGE_MIN
193
- })
194
- }) : null, /*#__PURE__*/_jsxs(Text, {
195
- style: [textStyles.meta(theme), {
196
- marginLeft: 'auto'
197
- }, overLimit && {
198
- color: theme.colors.statusDanger
199
- }],
200
- children: [message.length, "/", USER_MESSAGE_MAX]
201
- })]
202
- }), /*#__PURE__*/_jsx(View, {
203
- style: {
204
- paddingTop: 12
205
- },
206
- children: /*#__PURE__*/_jsx(PrimaryButton, {
207
- label: strings.t(submitting ? 'compose.sending' : 'compose.send'),
208
- onPress: handleSubmit,
209
- disabled: !valid || submitting,
210
- theme: theme,
211
- fullWidth: true
212
- })
213
- })]
214
- })]
215
- });
216
- }
217
- //# sourceMappingURL=ComposeScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Animated","Easing","KeyboardAvoidingView","Platform","Text","TextInput","View","USER_MESSAGE_MAX","USER_MESSAGE_MIN","CheckIcon","Chevron","IconButton","PrimaryButton","textStyles","TypeGlyph","jsx","_jsx","jsxs","_jsxs","SentMark","theme","scale","Value","current","opacity","parallel","timing","toValue","duration","easing","bezier","useNativeDriver","out","cubic","start","style","width","height","borderRadius","backgroundColor","colors","statusResolvedBg","borderWidth","borderColor","statusResolved","alignItems","justifyContent","transform","children","color","size","ComposeScreen","strings","type","onBack","onSubmit","message","setMessage","submitting","setSubmitting","failedMessage","setFailedMessage","sent","setSent","trimmed","trim","valid","length","overLimit","tooShort","handleSubmit","errorMessage","flex","gap","paddingHorizontal","paddingBottom","title","t","secondary","textAlign","marginTop","label","onPress","behavior","OS","undefined","flexDirection","accessibilityLabel","textSecondary","direction","heading","meta","value","onChangeText","v","multiline","autoFocus","editable","placeholder","placeholderTextColor","textTertiary","minHeight","maxHeight","border","radii","card","surface","textPrimary","fontSize","lineHeight","padding","textAlignVertical","paddingTop","statusDanger","count","marginLeft","disabled","fullWidth"],"sourceRoot":"../../../../src","sources":["components/screens/ComposeScreen.tsx"],"mappings":"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","ignoreList":[]}