@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.
Files changed (242) hide show
  1. package/lib/commonjs/api.js +61 -12
  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 +192 -66
  8. package/lib/commonjs/components/SupportButton.js.map +1 -1
  9. package/lib/commonjs/components/icons.js +117 -110
  10. package/lib/commonjs/components/icons.js.map +1 -1
  11. package/lib/commonjs/components/primitives.js +3 -154
  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/components/screens/LanguageScreen.js +150 -0
  16. package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
  17. package/lib/commonjs/i18n/index.js +101 -0
  18. package/lib/commonjs/i18n/index.js.map +1 -0
  19. package/lib/commonjs/i18n/languages.js +95 -0
  20. package/lib/commonjs/i18n/languages.js.map +1 -0
  21. package/lib/commonjs/i18n/strings/de.js +75 -0
  22. package/lib/commonjs/i18n/strings/de.js.map +1 -0
  23. package/lib/commonjs/i18n/strings/en.js +91 -0
  24. package/lib/commonjs/i18n/strings/en.js.map +1 -0
  25. package/lib/commonjs/i18n/strings/es.js +75 -0
  26. package/lib/commonjs/i18n/strings/es.js.map +1 -0
  27. package/lib/commonjs/i18n/strings/fr.js +75 -0
  28. package/lib/commonjs/i18n/strings/fr.js.map +1 -0
  29. package/lib/commonjs/i18n/strings/hi.js +75 -0
  30. package/lib/commonjs/i18n/strings/hi.js.map +1 -0
  31. package/lib/commonjs/i18n/strings/it.js +75 -0
  32. package/lib/commonjs/i18n/strings/it.js.map +1 -0
  33. package/lib/commonjs/i18n/strings/ja.js +75 -0
  34. package/lib/commonjs/i18n/strings/ja.js.map +1 -0
  35. package/lib/commonjs/i18n/strings/ko.js +75 -0
  36. package/lib/commonjs/i18n/strings/ko.js.map +1 -0
  37. package/lib/commonjs/i18n/strings/nl.js +75 -0
  38. package/lib/commonjs/i18n/strings/nl.js.map +1 -0
  39. package/lib/commonjs/i18n/strings/pl.js +75 -0
  40. package/lib/commonjs/i18n/strings/pl.js.map +1 -0
  41. package/lib/commonjs/i18n/strings/pt.js +75 -0
  42. package/lib/commonjs/i18n/strings/pt.js.map +1 -0
  43. package/lib/commonjs/i18n/strings/ru.js +75 -0
  44. package/lib/commonjs/i18n/strings/ru.js.map +1 -0
  45. package/lib/commonjs/i18n/strings/tr.js +75 -0
  46. package/lib/commonjs/i18n/strings/tr.js.map +1 -0
  47. package/lib/commonjs/i18n/strings/zh.js +75 -0
  48. package/lib/commonjs/i18n/strings/zh.js.map +1 -0
  49. package/lib/commonjs/index.js +38 -0
  50. package/lib/commonjs/index.js.map +1 -1
  51. package/lib/commonjs/push.js +78 -3
  52. package/lib/commonjs/push.js.map +1 -1
  53. package/lib/commonjs/review.js +54 -0
  54. package/lib/commonjs/review.js.map +1 -0
  55. package/lib/commonjs/theme.js +142 -23
  56. package/lib/commonjs/theme.js.map +1 -1
  57. package/lib/commonjs/types.js +32 -3
  58. package/lib/commonjs/types.js.map +1 -1
  59. package/lib/commonjs/useSupportThreads.js +41 -24
  60. package/lib/commonjs/useSupportThreads.js.map +1 -1
  61. package/lib/commonjs/utils.js +25 -30
  62. package/lib/commonjs/utils.js.map +1 -1
  63. package/lib/commonjs/version.js +13 -0
  64. package/lib/commonjs/version.js.map +1 -0
  65. package/lib/module/api.js +57 -10
  66. package/lib/module/api.js.map +1 -1
  67. package/lib/module/components/BottomSheet.js +1 -1
  68. package/lib/module/components/BottomSheet.js.map +1 -1
  69. package/lib/module/components/LauncherButton.js +5 -5
  70. package/lib/module/components/LauncherButton.js.map +1 -1
  71. package/lib/module/components/SupportButton.js +199 -73
  72. package/lib/module/components/SupportButton.js.map +1 -1
  73. package/lib/module/components/icons.js +115 -107
  74. package/lib/module/components/icons.js.map +1 -1
  75. package/lib/module/components/primitives.js +5 -147
  76. package/lib/module/components/primitives.js.map +1 -1
  77. package/lib/module/components/screens/ChatScreen.js +485 -0
  78. package/lib/module/components/screens/ChatScreen.js.map +1 -0
  79. package/lib/module/components/screens/LanguageScreen.js +147 -0
  80. package/lib/module/components/screens/LanguageScreen.js.map +1 -0
  81. package/lib/module/i18n/index.js +56 -0
  82. package/lib/module/i18n/index.js.map +1 -0
  83. package/lib/module/i18n/languages.js +88 -0
  84. package/lib/module/i18n/languages.js.map +1 -0
  85. package/lib/module/i18n/strings/de.js +71 -0
  86. package/lib/module/i18n/strings/de.js.map +1 -0
  87. package/lib/module/i18n/strings/en.js +87 -0
  88. package/lib/module/i18n/strings/en.js.map +1 -0
  89. package/lib/module/i18n/strings/es.js +71 -0
  90. package/lib/module/i18n/strings/es.js.map +1 -0
  91. package/lib/module/i18n/strings/fr.js +71 -0
  92. package/lib/module/i18n/strings/fr.js.map +1 -0
  93. package/lib/module/i18n/strings/hi.js +71 -0
  94. package/lib/module/i18n/strings/hi.js.map +1 -0
  95. package/lib/module/i18n/strings/it.js +71 -0
  96. package/lib/module/i18n/strings/it.js.map +1 -0
  97. package/lib/module/i18n/strings/ja.js +71 -0
  98. package/lib/module/i18n/strings/ja.js.map +1 -0
  99. package/lib/module/i18n/strings/ko.js +71 -0
  100. package/lib/module/i18n/strings/ko.js.map +1 -0
  101. package/lib/module/i18n/strings/nl.js +71 -0
  102. package/lib/module/i18n/strings/nl.js.map +1 -0
  103. package/lib/module/i18n/strings/pl.js +71 -0
  104. package/lib/module/i18n/strings/pl.js.map +1 -0
  105. package/lib/module/i18n/strings/pt.js +71 -0
  106. package/lib/module/i18n/strings/pt.js.map +1 -0
  107. package/lib/module/i18n/strings/ru.js +71 -0
  108. package/lib/module/i18n/strings/ru.js.map +1 -0
  109. package/lib/module/i18n/strings/tr.js +71 -0
  110. package/lib/module/i18n/strings/tr.js.map +1 -0
  111. package/lib/module/i18n/strings/zh.js +71 -0
  112. package/lib/module/i18n/strings/zh.js.map +1 -0
  113. package/lib/module/index.js +2 -0
  114. package/lib/module/index.js.map +1 -1
  115. package/lib/module/push.js +77 -3
  116. package/lib/module/push.js.map +1 -1
  117. package/lib/module/review.js +48 -0
  118. package/lib/module/review.js.map +1 -0
  119. package/lib/module/theme.js +141 -23
  120. package/lib/module/theme.js.map +1 -1
  121. package/lib/module/types.js +32 -3
  122. package/lib/module/types.js.map +1 -1
  123. package/lib/module/useSupportThreads.js +41 -24
  124. package/lib/module/useSupportThreads.js.map +1 -1
  125. package/lib/module/utils.js +24 -29
  126. package/lib/module/utils.js.map +1 -1
  127. package/lib/module/version.js +9 -0
  128. package/lib/module/version.js.map +1 -0
  129. package/lib/typescript/api.d.ts +40 -10
  130. package/lib/typescript/api.d.ts.map +1 -1
  131. package/lib/typescript/components/SupportButton.d.ts +2 -2
  132. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  133. package/lib/typescript/components/icons.d.ts +10 -14
  134. package/lib/typescript/components/icons.d.ts.map +1 -1
  135. package/lib/typescript/components/primitives.d.ts +3 -30
  136. package/lib/typescript/components/primitives.d.ts.map +1 -1
  137. package/lib/typescript/components/screens/ChatScreen.d.ts +21 -0
  138. package/lib/typescript/components/screens/ChatScreen.d.ts.map +1 -0
  139. package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
  140. package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
  141. package/lib/typescript/i18n/index.d.ts +15 -0
  142. package/lib/typescript/i18n/index.d.ts.map +1 -0
  143. package/lib/typescript/i18n/languages.d.ts +36 -0
  144. package/lib/typescript/i18n/languages.d.ts.map +1 -0
  145. package/lib/typescript/i18n/strings/de.d.ts +3 -0
  146. package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
  147. package/lib/typescript/i18n/strings/en.d.ts +86 -0
  148. package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
  149. package/lib/typescript/i18n/strings/es.d.ts +3 -0
  150. package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
  151. package/lib/typescript/i18n/strings/fr.d.ts +3 -0
  152. package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
  153. package/lib/typescript/i18n/strings/hi.d.ts +3 -0
  154. package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
  155. package/lib/typescript/i18n/strings/it.d.ts +3 -0
  156. package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
  157. package/lib/typescript/i18n/strings/ja.d.ts +3 -0
  158. package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
  159. package/lib/typescript/i18n/strings/ko.d.ts +3 -0
  160. package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
  161. package/lib/typescript/i18n/strings/nl.d.ts +3 -0
  162. package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
  163. package/lib/typescript/i18n/strings/pl.d.ts +3 -0
  164. package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
  165. package/lib/typescript/i18n/strings/pt.d.ts +3 -0
  166. package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
  167. package/lib/typescript/i18n/strings/ru.d.ts +3 -0
  168. package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
  169. package/lib/typescript/i18n/strings/tr.d.ts +3 -0
  170. package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
  171. package/lib/typescript/i18n/strings/zh.d.ts +3 -0
  172. package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
  173. package/lib/typescript/index.d.ts +4 -2
  174. package/lib/typescript/index.d.ts.map +1 -1
  175. package/lib/typescript/push.d.ts +14 -2
  176. package/lib/typescript/push.d.ts.map +1 -1
  177. package/lib/typescript/review.d.ts +15 -0
  178. package/lib/typescript/review.d.ts.map +1 -0
  179. package/lib/typescript/theme.d.ts +23 -5
  180. package/lib/typescript/theme.d.ts.map +1 -1
  181. package/lib/typescript/types.d.ts +86 -13
  182. package/lib/typescript/types.d.ts.map +1 -1
  183. package/lib/typescript/useSupportThreads.d.ts +20 -4
  184. package/lib/typescript/useSupportThreads.d.ts.map +1 -1
  185. package/lib/typescript/utils.d.ts +8 -6
  186. package/lib/typescript/utils.d.ts.map +1 -1
  187. package/lib/typescript/version.d.ts +7 -0
  188. package/lib/typescript/version.d.ts.map +1 -0
  189. package/package.json +2 -2
  190. package/src/api.ts +75 -23
  191. package/src/components/BottomSheet.tsx +1 -1
  192. package/src/components/LauncherButton.tsx +4 -4
  193. package/src/components/SupportButton.tsx +244 -86
  194. package/src/components/icons.tsx +96 -101
  195. package/src/components/primitives.tsx +9 -161
  196. package/src/components/screens/ChatScreen.tsx +541 -0
  197. package/src/components/screens/LanguageScreen.tsx +172 -0
  198. package/src/i18n/index.ts +81 -0
  199. package/src/i18n/languages.ts +106 -0
  200. package/src/i18n/strings/de.ts +81 -0
  201. package/src/i18n/strings/en.ts +97 -0
  202. package/src/i18n/strings/es.ts +80 -0
  203. package/src/i18n/strings/fr.ts +81 -0
  204. package/src/i18n/strings/hi.ts +80 -0
  205. package/src/i18n/strings/it.ts +80 -0
  206. package/src/i18n/strings/ja.ts +80 -0
  207. package/src/i18n/strings/ko.ts +79 -0
  208. package/src/i18n/strings/nl.ts +80 -0
  209. package/src/i18n/strings/pl.ts +80 -0
  210. package/src/i18n/strings/pt.ts +80 -0
  211. package/src/i18n/strings/ru.ts +80 -0
  212. package/src/i18n/strings/tr.ts +80 -0
  213. package/src/i18n/strings/zh.ts +78 -0
  214. package/src/index.tsx +13 -0
  215. package/src/push.ts +100 -2
  216. package/src/review.ts +54 -0
  217. package/src/theme.ts +182 -28
  218. package/src/types.ts +85 -13
  219. package/src/useSupportThreads.ts +61 -28
  220. package/src/utils.ts +27 -29
  221. package/src/version.ts +6 -0
  222. package/lib/commonjs/components/screens/ComposeScreen.js +0 -228
  223. package/lib/commonjs/components/screens/ComposeScreen.js.map +0 -1
  224. package/lib/commonjs/components/screens/HomeScreen.js +0 -286
  225. package/lib/commonjs/components/screens/HomeScreen.js.map +0 -1
  226. package/lib/commonjs/components/screens/ThreadScreen.js +0 -327
  227. package/lib/commonjs/components/screens/ThreadScreen.js.map +0 -1
  228. package/lib/module/components/screens/ComposeScreen.js +0 -224
  229. package/lib/module/components/screens/ComposeScreen.js.map +0 -1
  230. package/lib/module/components/screens/HomeScreen.js +0 -282
  231. package/lib/module/components/screens/HomeScreen.js.map +0 -1
  232. package/lib/module/components/screens/ThreadScreen.js +0 -325
  233. package/lib/module/components/screens/ThreadScreen.js.map +0 -1
  234. package/lib/typescript/components/screens/ComposeScreen.d.ts +0 -10
  235. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +0 -1
  236. package/lib/typescript/components/screens/HomeScreen.d.ts +0 -14
  237. package/lib/typescript/components/screens/HomeScreen.d.ts.map +0 -1
  238. package/lib/typescript/components/screens/ThreadScreen.d.ts +0 -10
  239. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +0 -1
  240. package/src/components/screens/ComposeScreen.tsx +0 -233
  241. package/src/components/screens/HomeScreen.tsx +0 -287
  242. package/src/components/screens/ThreadScreen.tsx +0 -397
@@ -1,282 +0,0 @@
1
- "use strict";
2
-
3
- import { RefreshControl, ScrollView, Text, View } from 'react-native';
4
- import { QUERY_TYPE_LABEL } from '../../types';
5
- import { relativeTime } from '../../utils';
6
- import { Chevron, CloseIcon } from '../icons';
7
- import { EmptyState, ErrorState, IconButton, PressableRow, SectionLabel, SkeletonBlock, textStyles, TypeGlyph, UnreadPill } from '../primitives';
8
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
- const COMPOSE_TYPES = ['feedback', 'feature_request', 'bug_report'];
10
- const COMPOSE_HINT = {
11
- feedback: 'Tell us what you think',
12
- feature_request: 'Suggest an improvement',
13
- bug_report: "Something isn't working"
14
- };
15
- function ThreadRow({
16
- thread,
17
- theme,
18
- onPress,
19
- last
20
- }) {
21
- const unread = thread.unread_count > 0;
22
- const preview = thread.last_message?.body ?? 'No messages yet';
23
- const at = thread.last_message?.created_at ?? thread.created_at;
24
- return /*#__PURE__*/_jsxs(PressableRow, {
25
- onPress: onPress,
26
- theme: theme,
27
- accessibilityLabel: unread ? `${QUERY_TYPE_LABEL[thread.type]} thread, ${thread.unread_count} unread` : `${QUERY_TYPE_LABEL[thread.type]} thread`,
28
- style: {
29
- flexDirection: 'row',
30
- alignItems: 'center',
31
- gap: 12,
32
- paddingHorizontal: 16,
33
- paddingVertical: 13,
34
- borderBottomWidth: last ? 0 : 1,
35
- borderBottomColor: theme.colors.border,
36
- opacity: thread.status === 'resolved' ? 0.75 : 1
37
- },
38
- children: [/*#__PURE__*/_jsx(TypeGlyph, {
39
- type: thread.type,
40
- theme: theme,
41
- size: 38
42
- }), /*#__PURE__*/_jsxs(View, {
43
- style: {
44
- flex: 1,
45
- gap: 3
46
- },
47
- children: [/*#__PURE__*/_jsxs(View, {
48
- style: {
49
- flexDirection: 'row',
50
- alignItems: 'center',
51
- gap: 8
52
- },
53
- children: [/*#__PURE__*/_jsx(Text, {
54
- numberOfLines: 1,
55
- style: {
56
- flex: 1,
57
- fontSize: 14,
58
- fontWeight: unread ? '700' : '600',
59
- letterSpacing: -0.1,
60
- color: theme.colors.textPrimary
61
- },
62
- children: QUERY_TYPE_LABEL[thread.type]
63
- }), /*#__PURE__*/_jsx(Text, {
64
- style: textStyles.meta(theme),
65
- children: relativeTime(at)
66
- })]
67
- }), /*#__PURE__*/_jsxs(View, {
68
- style: {
69
- flexDirection: 'row',
70
- alignItems: 'center',
71
- gap: 8
72
- },
73
- children: [/*#__PURE__*/_jsxs(Text, {
74
- numberOfLines: 1,
75
- style: {
76
- flex: 1,
77
- fontSize: 13,
78
- lineHeight: 18,
79
- color: unread ? theme.colors.textPrimary : theme.colors.textSecondary
80
- },
81
- children: [thread.last_message?.sender === 'user' ? 'You: ' : '', preview]
82
- }), unread ? /*#__PURE__*/_jsx(UnreadPill, {
83
- count: thread.unread_count,
84
- theme: theme
85
- }) : /*#__PURE__*/_jsx(Chevron, {
86
- color: theme.colors.textTertiary
87
- })]
88
- })]
89
- })]
90
- });
91
- }
92
- function ThreadGroup({
93
- label,
94
- threads,
95
- theme,
96
- onOpenThread
97
- }) {
98
- if (threads.length === 0) return null;
99
- return /*#__PURE__*/_jsxs(View, {
100
- style: {
101
- marginTop: 24
102
- },
103
- children: [/*#__PURE__*/_jsx(SectionLabel, {
104
- theme: theme,
105
- style: {
106
- paddingHorizontal: 16,
107
- paddingBottom: 8
108
- },
109
- children: label
110
- }), /*#__PURE__*/_jsx(View, {
111
- style: {
112
- marginHorizontal: 16,
113
- borderWidth: 1,
114
- borderColor: theme.colors.border,
115
- borderRadius: theme.radii.card,
116
- backgroundColor: theme.colors.surface,
117
- overflow: 'hidden'
118
- },
119
- children: threads.map((thread, i) => /*#__PURE__*/_jsx(ThreadRow, {
120
- thread: thread,
121
- theme: theme,
122
- onPress: () => onOpenThread(thread),
123
- last: i === threads.length - 1
124
- }, thread.id))
125
- })]
126
- });
127
- }
128
- export function HomeScreen({
129
- theme,
130
- threads,
131
- loading,
132
- refreshing,
133
- error,
134
- onRefresh,
135
- onCompose,
136
- onOpenThread,
137
- onClose
138
- }) {
139
- const open = (threads ?? []).filter(t => t.status === 'open');
140
- const resolved = (threads ?? []).filter(t => t.status === 'resolved');
141
- return /*#__PURE__*/_jsxs(View, {
142
- style: {
143
- flex: 1
144
- },
145
- children: [/*#__PURE__*/_jsxs(View, {
146
- style: {
147
- flexDirection: 'row',
148
- alignItems: 'flex-start',
149
- paddingHorizontal: 16,
150
- paddingTop: 4,
151
- paddingBottom: 16
152
- },
153
- children: [/*#__PURE__*/_jsxs(View, {
154
- style: {
155
- flex: 1,
156
- gap: 2
157
- },
158
- children: [/*#__PURE__*/_jsx(Text, {
159
- style: textStyles.title(theme),
160
- children: "Support"
161
- }), /*#__PURE__*/_jsx(Text, {
162
- style: textStyles.secondary(theme),
163
- children: "Start a conversation \u2014 we reply right here."
164
- })]
165
- }), /*#__PURE__*/_jsx(IconButton, {
166
- onPress: onClose,
167
- theme: theme,
168
- accessibilityLabel: "Close support",
169
- size: 32,
170
- children: /*#__PURE__*/_jsx(CloseIcon, {
171
- color: theme.colors.textSecondary,
172
- size: 12
173
- })
174
- })]
175
- }), /*#__PURE__*/_jsxs(ScrollView, {
176
- style: {
177
- flex: 1
178
- },
179
- contentContainerStyle: {
180
- paddingBottom: 24
181
- },
182
- keyboardShouldPersistTaps: "handled",
183
- refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
184
- refreshing: refreshing,
185
- onRefresh: onRefresh,
186
- tintColor: theme.colors.textTertiary,
187
- colors: [theme.colors.accent],
188
- progressBackgroundColor: theme.colors.surface
189
- }),
190
- children: [/*#__PURE__*/_jsx(View, {
191
- style: {
192
- marginHorizontal: 16,
193
- borderWidth: 1,
194
- borderColor: theme.colors.border,
195
- borderRadius: theme.radii.card,
196
- backgroundColor: theme.colors.surface,
197
- overflow: 'hidden'
198
- },
199
- children: COMPOSE_TYPES.map((type, i) => /*#__PURE__*/_jsxs(PressableRow, {
200
- onPress: () => onCompose(type),
201
- theme: theme,
202
- accessibilityLabel: `New ${QUERY_TYPE_LABEL[type].toLowerCase()}`,
203
- style: {
204
- flexDirection: 'row',
205
- alignItems: 'center',
206
- gap: 12,
207
- paddingHorizontal: 14,
208
- paddingVertical: 12,
209
- borderTopWidth: i === 0 ? 0 : 1,
210
- borderTopColor: theme.colors.border
211
- },
212
- children: [/*#__PURE__*/_jsx(TypeGlyph, {
213
- type: type,
214
- theme: theme,
215
- size: 34
216
- }), /*#__PURE__*/_jsxs(View, {
217
- style: {
218
- flex: 1,
219
- gap: 1
220
- },
221
- children: [/*#__PURE__*/_jsx(Text, {
222
- style: textStyles.heading(theme),
223
- children: QUERY_TYPE_LABEL[type]
224
- }), /*#__PURE__*/_jsx(Text, {
225
- style: textStyles.meta(theme),
226
- children: COMPOSE_HINT[type]
227
- })]
228
- }), /*#__PURE__*/_jsx(Chevron, {
229
- color: theme.colors.textTertiary
230
- })]
231
- }, type))
232
- }), error !== null && threads === null ?
233
- /*#__PURE__*/
234
- // Only take over the screen when there's nothing cached to show —
235
- // a failed background poll shouldn't hide an already-loaded list.
236
- _jsx(ErrorState, {
237
- message: error,
238
- onRetry: onRefresh,
239
- theme: theme
240
- }) : loading && threads === null ? /*#__PURE__*/_jsxs(View, {
241
- style: {
242
- paddingHorizontal: 16,
243
- paddingTop: 28,
244
- gap: 12
245
- },
246
- children: [/*#__PURE__*/_jsx(SkeletonBlock, {
247
- width: 110,
248
- height: 11,
249
- theme: theme,
250
- radius: 4
251
- }), /*#__PURE__*/_jsx(SkeletonBlock, {
252
- width: "100%",
253
- height: 64,
254
- theme: theme,
255
- radius: theme.radii.card
256
- }), /*#__PURE__*/_jsx(SkeletonBlock, {
257
- width: "100%",
258
- height: 64,
259
- theme: theme,
260
- radius: theme.radii.card
261
- })]
262
- }) : (threads ?? []).length === 0 ? /*#__PURE__*/_jsx(EmptyState, {
263
- message: "No conversations yet",
264
- hint: "Anything you send lands with the team, and their replies come back to this sheet.",
265
- theme: theme
266
- }) : /*#__PURE__*/_jsxs(_Fragment, {
267
- children: [/*#__PURE__*/_jsx(ThreadGroup, {
268
- label: `Open · ${open.length}`,
269
- threads: open,
270
- theme: theme,
271
- onOpenThread: onOpenThread
272
- }), /*#__PURE__*/_jsx(ThreadGroup, {
273
- label: "Resolved",
274
- threads: resolved,
275
- theme: theme,
276
- onOpenThread: onOpenThread
277
- })]
278
- })]
279
- })]
280
- });
281
- }
282
- //# sourceMappingURL=HomeScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["RefreshControl","ScrollView","Text","View","QUERY_TYPE_LABEL","relativeTime","Chevron","CloseIcon","EmptyState","ErrorState","IconButton","PressableRow","SectionLabel","SkeletonBlock","textStyles","TypeGlyph","UnreadPill","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","COMPOSE_TYPES","COMPOSE_HINT","feedback","feature_request","bug_report","ThreadRow","thread","theme","onPress","last","unread","unread_count","preview","last_message","body","at","created_at","accessibilityLabel","type","style","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","colors","border","opacity","status","children","size","flex","numberOfLines","fontSize","fontWeight","letterSpacing","color","textPrimary","meta","lineHeight","textSecondary","sender","count","textTertiary","ThreadGroup","label","threads","onOpenThread","length","marginTop","paddingBottom","marginHorizontal","borderWidth","borderColor","borderRadius","radii","card","backgroundColor","surface","overflow","map","i","id","HomeScreen","loading","refreshing","error","onRefresh","onCompose","onClose","open","filter","t","resolved","paddingTop","title","secondary","contentContainerStyle","keyboardShouldPersistTaps","refreshControl","tintColor","accent","progressBackgroundColor","toLowerCase","borderTopWidth","borderTopColor","heading","message","onRetry","width","height","radius","hint"],"sourceRoot":"../../../../src","sources":["components/screens/HomeScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,325 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect, useMemo, useRef, useState } from 'react';
4
- import { KeyboardAvoidingView, Platform, ScrollView, Text, TextInput, View } from 'react-native';
5
- import { USER_MESSAGE_MAX, USER_MESSAGE_MIN } from '../../types';
6
- import { dayLabel, formatDate, formatTime, isSameDay, relativeTime } from '../../utils';
7
- import { ArrowUpIcon, Chevron } from '../icons';
8
- import { IconButton, StatusIndicator, textStyles, TypeChipView } from '../primitives';
9
-
10
- /** Consecutive messages from one sender inside this window form a group. */
11
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
- const GROUP_WINDOW_MS = 5 * 60 * 1000;
13
- /** The counter only appears once the limit is actually in play. */
14
- const COUNTER_VISIBLE_FROM = USER_MESSAGE_MAX - 60;
15
- function buildRows(messages, unreadCount) {
16
- // Unread messages are always the newest admin ones, so the divider goes
17
- // above the Nth-from-last admin message.
18
- let remaining = unreadCount;
19
- let firstUnreadId = null;
20
- for (let i = messages.length - 1; i >= 0 && remaining > 0; i -= 1) {
21
- const candidate = messages[i];
22
- if (candidate === undefined || candidate.sender !== 'admin') continue;
23
- remaining -= 1;
24
- firstUnreadId = candidate.id;
25
- }
26
- return messages.map((message, i) => {
27
- const previous = i > 0 ? messages[i - 1] ?? null : null;
28
- const next = i < messages.length - 1 ? messages[i + 1] ?? null : null;
29
- const withinGroup = (a, b) => a !== null && a.sender === b.sender && a.admin_name === b.admin_name && Math.abs(Date.parse(b.created_at) - Date.parse(a.created_at)) < GROUP_WINDOW_MS;
30
- const day = previous === null || !isSameDay(previous.created_at, message.created_at) ? dayLabel(message.created_at) : null;
31
- const startsUnread = message.id === firstUnreadId;
32
- return {
33
- message,
34
- // A separator always breaks a group.
35
- firstInGroup: day !== null || startsUnread || !withinGroup(previous, message),
36
- lastInGroup: next === null || next.id === firstUnreadId || !isSameDay(next.created_at, message.created_at) || !withinGroup(next, message),
37
- day,
38
- startsUnread
39
- };
40
- });
41
- }
42
- function Separator({
43
- label,
44
- theme,
45
- tone = 'muted'
46
- }) {
47
- const color = tone === 'accent' ? theme.colors.accent : theme.colors.textTertiary;
48
- return /*#__PURE__*/_jsxs(View, {
49
- style: {
50
- flexDirection: 'row',
51
- alignItems: 'center',
52
- gap: 10,
53
- paddingVertical: 6
54
- },
55
- children: [/*#__PURE__*/_jsx(View, {
56
- style: {
57
- flex: 1,
58
- height: 1,
59
- backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
60
- }
61
- }), /*#__PURE__*/_jsx(Text, {
62
- style: {
63
- fontSize: 11,
64
- fontWeight: '600',
65
- letterSpacing: 0.3,
66
- color
67
- },
68
- children: label
69
- }), /*#__PURE__*/_jsx(View, {
70
- style: {
71
- flex: 1,
72
- height: 1,
73
- backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
74
- }
75
- })]
76
- });
77
- }
78
- function MessageBubble({
79
- row,
80
- theme
81
- }) {
82
- const {
83
- message,
84
- firstInGroup,
85
- lastInGroup
86
- } = row;
87
- const own = message.sender === 'user';
88
- const round = theme.radii.bubble;
89
- const tight = theme.radii.bubbleTail;
90
- return /*#__PURE__*/_jsxs(View, {
91
- style: {
92
- maxWidth: '86%',
93
- alignSelf: own ? 'flex-end' : 'flex-start',
94
- alignItems: own ? 'flex-end' : 'flex-start',
95
- marginTop: firstInGroup ? 10 : 2,
96
- gap: 4
97
- },
98
- children: [!own && firstInGroup && /*#__PURE__*/_jsx(Text, {
99
- style: [textStyles.meta(theme), {
100
- paddingHorizontal: 4
101
- }],
102
- children: message.admin_name ?? 'Support'
103
- }), /*#__PURE__*/_jsx(View, {
104
- style: {
105
- paddingHorizontal: 14,
106
- paddingVertical: 10,
107
- backgroundColor: own ? theme.colors.accent : theme.colors.surface,
108
- borderWidth: own ? 0 : 1,
109
- borderColor: theme.colors.border,
110
- borderTopLeftRadius: own || firstInGroup ? round : tight,
111
- borderBottomLeftRadius: own || lastInGroup ? round : tight,
112
- borderTopRightRadius: !own || firstInGroup ? round : tight,
113
- borderBottomRightRadius: !own || lastInGroup ? round : tight
114
- },
115
- children: /*#__PURE__*/_jsx(Text, {
116
- style: [textStyles.body(theme), own && {
117
- color: theme.colors.accentForeground
118
- }],
119
- children: message.body
120
- })
121
- }), lastInGroup && /*#__PURE__*/_jsx(Text, {
122
- style: [textStyles.meta(theme), {
123
- paddingHorizontal: 4
124
- }],
125
- children: formatTime(message.created_at)
126
- })]
127
- });
128
- }
129
- export function ThreadScreen({
130
- theme,
131
- thread,
132
- onBack,
133
- onSend
134
- }) {
135
- const [draft, setDraft] = useState('');
136
- const [sending, setSending] = useState(false);
137
- const [failedMessage, setFailedMessage] = useState(null);
138
- const scrollRef = useRef(null);
139
- // Captured once: opening the thread marks it read within a tick, but the
140
- // "New" divider should stay put while the user is reading.
141
- const [unreadOnOpen] = useState(thread.unread_count);
142
- const resolved = thread.status === 'resolved';
143
- const trimmed = draft.trim();
144
- const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
145
- const tooShort = trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN;
146
- const rows = useMemo(() => buildRows(thread.messages, unreadOnOpen), [thread.messages, unreadOnOpen]);
147
- useEffect(() => {
148
- scrollRef.current?.scrollToEnd({
149
- animated: false
150
- });
151
- }, [thread.messages.length]);
152
- async function handleSend() {
153
- if (!valid || sending || resolved) return;
154
- setSending(true);
155
- setFailedMessage(null);
156
- const errorMessage = await onSend(trimmed);
157
- setSending(false);
158
- if (errorMessage === null) setDraft('');else setFailedMessage(errorMessage);
159
- }
160
- return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
161
- style: {
162
- flex: 1
163
- },
164
- behavior: Platform.OS === 'ios' ? 'padding' : undefined,
165
- children: [/*#__PURE__*/_jsxs(View, {
166
- style: {
167
- flexDirection: 'row',
168
- alignItems: 'center',
169
- gap: 10,
170
- paddingHorizontal: 12,
171
- paddingBottom: 12,
172
- borderBottomWidth: 1,
173
- borderBottomColor: theme.colors.border
174
- },
175
- children: [/*#__PURE__*/_jsx(IconButton, {
176
- onPress: onBack,
177
- theme: theme,
178
- accessibilityLabel: "Back to conversations",
179
- size: 32,
180
- children: /*#__PURE__*/_jsx(Chevron, {
181
- color: theme.colors.textSecondary,
182
- direction: "left",
183
- size: 12
184
- })
185
- }), /*#__PURE__*/_jsx(TypeChipView, {
186
- type: thread.type,
187
- theme: theme
188
- }), /*#__PURE__*/_jsx(StatusIndicator, {
189
- status: thread.status,
190
- theme: theme
191
- }), /*#__PURE__*/_jsx(Text, {
192
- style: [textStyles.meta(theme), {
193
- marginLeft: 'auto'
194
- }],
195
- children: relativeTime(thread.created_at)
196
- })]
197
- }), /*#__PURE__*/_jsxs(ScrollView, {
198
- ref: scrollRef,
199
- style: {
200
- flex: 1
201
- },
202
- contentContainerStyle: {
203
- paddingHorizontal: 16,
204
- paddingVertical: 12
205
- },
206
- keyboardShouldPersistTaps: "handled",
207
- onContentSizeChange: () => scrollRef.current?.scrollToEnd({
208
- animated: false
209
- }),
210
- children: [rows.map(row => /*#__PURE__*/_jsxs(View, {
211
- children: [row.day !== null && /*#__PURE__*/_jsx(Separator, {
212
- label: row.day,
213
- theme: theme
214
- }), row.startsUnread && /*#__PURE__*/_jsx(Separator, {
215
- label: "New",
216
- theme: theme,
217
- tone: "accent"
218
- }), /*#__PURE__*/_jsx(MessageBubble, {
219
- row: row,
220
- theme: theme
221
- })]
222
- }, row.message.id)), resolved && thread.resolved_at !== null && /*#__PURE__*/_jsx(View, {
223
- style: {
224
- marginTop: 16
225
- },
226
- children: /*#__PURE__*/_jsx(Separator, {
227
- label: `Resolved by ${thread.resolved_by_name ?? 'support'} · ${formatDate(thread.resolved_at)}`,
228
- theme: theme
229
- })
230
- })]
231
- }), /*#__PURE__*/_jsx(View, {
232
- style: {
233
- borderTopWidth: 1,
234
- borderTopColor: theme.colors.border,
235
- paddingHorizontal: 16,
236
- paddingTop: 10,
237
- paddingBottom: 4
238
- },
239
- children: resolved ? /*#__PURE__*/_jsx(View, {
240
- style: {
241
- alignItems: 'center',
242
- paddingVertical: 10,
243
- borderRadius: theme.radii.control,
244
- backgroundColor: theme.colors.surface
245
- },
246
- children: /*#__PURE__*/_jsx(Text, {
247
- style: textStyles.secondary(theme),
248
- children: "This conversation is resolved and read-only"
249
- })
250
- }) : /*#__PURE__*/_jsxs(_Fragment, {
251
- children: [/*#__PURE__*/_jsxs(View, {
252
- style: {
253
- flexDirection: 'row',
254
- alignItems: 'flex-end',
255
- gap: 10
256
- },
257
- children: [/*#__PURE__*/_jsx(TextInput, {
258
- value: draft,
259
- onChangeText: v => {
260
- setDraft(v);
261
- setFailedMessage(null);
262
- },
263
- multiline: true,
264
- editable: !sending,
265
- placeholder: "Write a reply\u2026",
266
- placeholderTextColor: theme.colors.textTertiary,
267
- style: {
268
- flex: 1,
269
- minHeight: 44,
270
- maxHeight: 120,
271
- borderWidth: 1,
272
- borderColor: theme.colors.border,
273
- borderRadius: theme.radii.cardLg,
274
- backgroundColor: theme.colors.surface,
275
- color: theme.colors.textPrimary,
276
- fontSize: 15,
277
- lineHeight: 20,
278
- paddingHorizontal: 14,
279
- paddingTop: 12,
280
- paddingBottom: 12,
281
- textAlignVertical: 'top'
282
- }
283
- }), /*#__PURE__*/_jsx(IconButton, {
284
- onPress: handleSend,
285
- theme: theme,
286
- tone: "accent",
287
- size: 44,
288
- disabled: !valid || sending,
289
- accessibilityLabel: sending ? 'Sending' : 'Send reply',
290
- children: /*#__PURE__*/_jsx(ArrowUpIcon, {
291
- color: theme.colors.accentForeground,
292
- size: 19
293
- })
294
- })]
295
- }), (tooShort || draft.length >= COUNTER_VISIBLE_FROM || failedMessage !== null) && /*#__PURE__*/_jsxs(View, {
296
- style: {
297
- flexDirection: 'row',
298
- alignItems: 'center',
299
- gap: 10,
300
- paddingTop: 8,
301
- paddingHorizontal: 4
302
- },
303
- children: [failedMessage !== null ? /*#__PURE__*/_jsx(Text, {
304
- style: {
305
- fontSize: 12,
306
- color: theme.colors.statusDanger
307
- },
308
- children: failedMessage
309
- }) : tooShort ? /*#__PURE__*/_jsxs(Text, {
310
- style: textStyles.meta(theme),
311
- children: ["At least ", USER_MESSAGE_MIN, " characters"]
312
- }) : null, draft.length >= COUNTER_VISIBLE_FROM && /*#__PURE__*/_jsxs(Text, {
313
- style: [textStyles.meta(theme), {
314
- marginLeft: 'auto'
315
- }, draft.length > USER_MESSAGE_MAX && {
316
- color: theme.colors.statusDanger
317
- }],
318
- children: [draft.length, "/", USER_MESSAGE_MAX]
319
- })]
320
- })]
321
- })
322
- })]
323
- });
324
- }
325
- //# sourceMappingURL=ThreadScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","Text","TextInput","View","USER_MESSAGE_MAX","USER_MESSAGE_MIN","dayLabel","formatDate","formatTime","isSameDay","relativeTime","ArrowUpIcon","Chevron","IconButton","StatusIndicator","textStyles","TypeChipView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GROUP_WINDOW_MS","COUNTER_VISIBLE_FROM","buildRows","messages","unreadCount","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","admin_name","Math","abs","Date","parse","created_at","day","startsUnread","firstInGroup","lastInGroup","Separator","label","theme","tone","color","colors","accent","textTertiary","style","flexDirection","alignItems","gap","paddingVertical","children","flex","height","backgroundColor","accentMuted","border","fontSize","fontWeight","letterSpacing","MessageBubble","row","own","round","radii","bubble","tight","bubbleTail","maxWidth","alignSelf","marginTop","meta","paddingHorizontal","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","ThreadScreen","thread","onBack","onSend","draft","setDraft","sending","setSending","failedMessage","setFailedMessage","scrollRef","unreadOnOpen","unread_count","resolved","status","trimmed","trim","valid","tooShort","rows","current","scrollToEnd","animated","handleSend","errorMessage","behavior","OS","paddingBottom","borderBottomWidth","borderBottomColor","onPress","accessibilityLabel","size","textSecondary","direction","type","marginLeft","ref","contentContainerStyle","keyboardShouldPersistTaps","onContentSizeChange","resolved_at","resolved_by_name","borderTopWidth","borderTopColor","paddingTop","borderRadius","control","secondary","value","onChangeText","v","multiline","editable","placeholder","placeholderTextColor","minHeight","maxHeight","cardLg","textPrimary","lineHeight","textAlignVertical","disabled","statusDanger"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { SupportTheme } from '../../theme';
2
- import type { QueryType } from '../../types';
3
- export declare function ComposeScreen({ theme, type, onBack, onSubmit, }: {
4
- theme: SupportTheme;
5
- type: QueryType;
6
- onBack: () => void;
7
- /** Resolves null on success, or a user-facing error message. */
8
- onSubmit: (message: string) => Promise<string | null>;
9
- }): import("react").JSX.Element;
10
- //# sourceMappingURL=ComposeScreen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ComposeScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/screens/ComposeScreen.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgE7C,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACvD,+BAkJA"}