@appsupportkit/support-sdk 0.1.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 (87) hide show
  1. package/lib/commonjs/api.js +93 -0
  2. package/lib/commonjs/api.js.map +1 -0
  3. package/lib/commonjs/components/BottomSheet.js +158 -0
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -0
  5. package/lib/commonjs/components/SupportButton.js +244 -0
  6. package/lib/commonjs/components/SupportButton.js.map +1 -0
  7. package/lib/commonjs/components/icons.js +236 -0
  8. package/lib/commonjs/components/icons.js.map +1 -0
  9. package/lib/commonjs/components/primitives.js +284 -0
  10. package/lib/commonjs/components/primitives.js.map +1 -0
  11. package/lib/commonjs/components/screens/ComposeScreen.js +171 -0
  12. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -0
  13. package/lib/commonjs/components/screens/HomeScreen.js +227 -0
  14. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -0
  15. package/lib/commonjs/components/screens/ThreadScreen.js +213 -0
  16. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -0
  17. package/lib/commonjs/index.js +58 -0
  18. package/lib/commonjs/index.js.map +1 -0
  19. package/lib/commonjs/package.json +1 -0
  20. package/lib/commonjs/theme.js +29 -0
  21. package/lib/commonjs/theme.js.map +1 -0
  22. package/lib/commonjs/types.js +14 -0
  23. package/lib/commonjs/types.js.map +1 -0
  24. package/lib/commonjs/utils.js +63 -0
  25. package/lib/commonjs/utils.js.map +1 -0
  26. package/lib/module/api.js +84 -0
  27. package/lib/module/api.js.map +1 -0
  28. package/lib/module/components/BottomSheet.js +153 -0
  29. package/lib/module/components/BottomSheet.js.map +1 -0
  30. package/lib/module/components/SupportButton.js +240 -0
  31. package/lib/module/components/SupportButton.js.map +1 -0
  32. package/lib/module/components/icons.js +225 -0
  33. package/lib/module/components/icons.js.map +1 -0
  34. package/lib/module/components/primitives.js +270 -0
  35. package/lib/module/components/primitives.js.map +1 -0
  36. package/lib/module/components/screens/ComposeScreen.js +167 -0
  37. package/lib/module/components/screens/ComposeScreen.js.map +1 -0
  38. package/lib/module/components/screens/HomeScreen.js +223 -0
  39. package/lib/module/components/screens/HomeScreen.js.map +1 -0
  40. package/lib/module/components/screens/ThreadScreen.js +209 -0
  41. package/lib/module/components/screens/ThreadScreen.js.map +1 -0
  42. package/lib/module/index.js +7 -0
  43. package/lib/module/index.js.map +1 -0
  44. package/lib/module/package.json +1 -0
  45. package/lib/module/theme.js +23 -0
  46. package/lib/module/theme.js.map +1 -0
  47. package/lib/module/types.js +10 -0
  48. package/lib/module/types.js.map +1 -0
  49. package/lib/module/utils.js +57 -0
  50. package/lib/module/utils.js.map +1 -0
  51. package/lib/typescript/api.d.ts +37 -0
  52. package/lib/typescript/api.d.ts.map +1 -0
  53. package/lib/typescript/components/BottomSheet.d.ts +9 -0
  54. package/lib/typescript/components/BottomSheet.d.ts.map +1 -0
  55. package/lib/typescript/components/SupportButton.d.ts +8 -0
  56. package/lib/typescript/components/SupportButton.d.ts.map +1 -0
  57. package/lib/typescript/components/icons.d.ts +32 -0
  58. package/lib/typescript/components/icons.d.ts.map +1 -0
  59. package/lib/typescript/components/primitives.d.ts +60 -0
  60. package/lib/typescript/components/primitives.d.ts.map +1 -0
  61. package/lib/typescript/components/screens/ComposeScreen.d.ts +10 -0
  62. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -0
  63. package/lib/typescript/components/screens/HomeScreen.d.ts +13 -0
  64. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -0
  65. package/lib/typescript/components/screens/ThreadScreen.d.ts +10 -0
  66. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -0
  67. package/lib/typescript/index.d.ts +6 -0
  68. package/lib/typescript/index.d.ts.map +1 -0
  69. package/lib/typescript/theme.d.ts +13 -0
  70. package/lib/typescript/theme.d.ts.map +1 -0
  71. package/lib/typescript/types.d.ts +61 -0
  72. package/lib/typescript/types.d.ts.map +1 -0
  73. package/lib/typescript/utils.d.ts +11 -0
  74. package/lib/typescript/utils.d.ts.map +1 -0
  75. package/package.json +51 -0
  76. package/src/api.ts +125 -0
  77. package/src/components/BottomSheet.tsx +173 -0
  78. package/src/components/SupportButton.tsx +265 -0
  79. package/src/components/icons.tsx +189 -0
  80. package/src/components/primitives.tsx +298 -0
  81. package/src/components/screens/ComposeScreen.tsx +163 -0
  82. package/src/components/screens/HomeScreen.tsx +234 -0
  83. package/src/components/screens/ThreadScreen.tsx +227 -0
  84. package/src/index.tsx +24 -0
  85. package/src/theme.ts +39 -0
  86. package/src/types.ts +71 -0
  87. package/src/utils.ts +63 -0
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ComposeScreen = ComposeScreen;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _types = require("../../types");
10
+ var _icons = require("../icons");
11
+ var _primitives = require("../primitives");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function ComposeScreen({
14
+ theme,
15
+ type,
16
+ onBack,
17
+ onSubmit
18
+ }) {
19
+ const [message, setMessage] = (0, _react.useState)('');
20
+ const [submitting, setSubmitting] = (0, _react.useState)(false);
21
+ const [failed, setFailed] = (0, _react.useState)(false);
22
+ const [sent, setSent] = (0, _react.useState)(false);
23
+ const trimmed = message.trim();
24
+ const valid = trimmed.length >= _types.USER_MESSAGE_MIN && trimmed.length <= _types.USER_MESSAGE_MAX;
25
+ const overLimit = message.length > _types.USER_MESSAGE_MAX;
26
+ async function handleSubmit() {
27
+ if (!valid || submitting) return;
28
+ setSubmitting(true);
29
+ setFailed(false);
30
+ const ok = await onSubmit(trimmed);
31
+ setSubmitting(false);
32
+ if (ok) setSent(true);else setFailed(true);
33
+ }
34
+ if (sent) {
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
36
+ style: {
37
+ flex: 1,
38
+ alignItems: 'center',
39
+ justifyContent: 'center',
40
+ gap: 12,
41
+ padding: 24
42
+ },
43
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
44
+ style: {
45
+ width: 40,
46
+ height: 40,
47
+ borderRadius: 20,
48
+ borderWidth: 1,
49
+ borderColor: theme.colors.statusResolved,
50
+ alignItems: 'center',
51
+ justifyContent: 'center'
52
+ },
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.CheckIcon, {
54
+ color: theme.colors.statusResolved,
55
+ size: 14
56
+ })
57
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
58
+ style: _primitives.textStyles.body(theme),
59
+ children: "Sent"
60
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
61
+ style: [_primitives.textStyles.secondary(theme), {
62
+ textAlign: 'center'
63
+ }],
64
+ children: "We'll reply here. You'll see the thread under Open."
65
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
66
+ style: {
67
+ marginTop: 8
68
+ },
69
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PrimaryButton, {
70
+ label: "Done",
71
+ onPress: onBack,
72
+ theme: theme
73
+ })
74
+ })]
75
+ });
76
+ }
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
78
+ style: {
79
+ flex: 1
80
+ },
81
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
82
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
83
+ style: {
84
+ flexDirection: 'row',
85
+ alignItems: 'center',
86
+ gap: 8,
87
+ paddingHorizontal: 12,
88
+ paddingBottom: 12
89
+ },
90
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PressableRow, {
91
+ onPress: onBack,
92
+ theme: theme,
93
+ accessibilityLabel: "Back",
94
+ style: {
95
+ padding: 6,
96
+ borderRadius: theme.radii.control
97
+ },
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
99
+ color: theme.colors.textSecondary,
100
+ direction: "left",
101
+ size: 12
102
+ })
103
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
104
+ style: _primitives.textStyles.title(theme),
105
+ children: _types.QUERY_TYPE_LABEL[type]
106
+ })]
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
108
+ style: {
109
+ flex: 1,
110
+ paddingHorizontal: 16
111
+ },
112
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
113
+ value: message,
114
+ onChangeText: v => {
115
+ setMessage(v);
116
+ setFailed(false);
117
+ },
118
+ multiline: true,
119
+ autoFocus: true,
120
+ placeholder: type === 'bug_report' ? 'What happened, and what did you expect?' : type === 'feature_request' ? 'What would you like to see?' : 'What should we know?',
121
+ placeholderTextColor: theme.colors.textTertiary,
122
+ style: {
123
+ minHeight: 120,
124
+ maxHeight: 220,
125
+ borderWidth: 1,
126
+ borderColor: theme.colors.border,
127
+ borderRadius: theme.radii.control,
128
+ backgroundColor: theme.colors.surface,
129
+ color: theme.colors.textPrimary,
130
+ fontSize: 14,
131
+ lineHeight: 20,
132
+ padding: 12,
133
+ textAlignVertical: 'top'
134
+ }
135
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
136
+ style: {
137
+ flexDirection: 'row',
138
+ alignItems: 'center',
139
+ marginTop: 8,
140
+ gap: 12
141
+ },
142
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
143
+ style: [_primitives.textStyles.meta(theme), overLimit && {
144
+ color: theme.colors.statusDanger
145
+ }],
146
+ children: [message.length, "/", _types.USER_MESSAGE_MAX]
147
+ }), trimmed.length > 0 && trimmed.length < _types.USER_MESSAGE_MIN && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
148
+ style: _primitives.textStyles.meta(theme),
149
+ children: ["At least ", _types.USER_MESSAGE_MIN, " characters"]
150
+ }), failed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
151
+ style: {
152
+ fontSize: 11,
153
+ color: theme.colors.statusDanger
154
+ },
155
+ children: "Couldn't send \u2014 try again"
156
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
157
+ style: {
158
+ marginLeft: 'auto'
159
+ },
160
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PrimaryButton, {
161
+ label: submitting ? 'Sending…' : 'Send',
162
+ onPress: handleSubmit,
163
+ disabled: !valid || submitting,
164
+ theme: theme
165
+ })
166
+ })]
167
+ })]
168
+ })]
169
+ });
170
+ }
171
+ //# sourceMappingURL=ComposeScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_types","_icons","_primitives","_jsxRuntime","ComposeScreen","theme","type","onBack","onSubmit","message","setMessage","useState","submitting","setSubmitting","failed","setFailed","sent","setSent","trimmed","trim","valid","length","USER_MESSAGE_MIN","USER_MESSAGE_MAX","overLimit","handleSubmit","ok","jsxs","View","style","flex","alignItems","justifyContent","gap","padding","children","jsx","width","height","borderRadius","borderWidth","borderColor","colors","statusResolved","CheckIcon","color","size","Text","textStyles","body","secondary","textAlign","marginTop","PrimaryButton","label","onPress","KeyboardAvoidingView","behavior","Platform","OS","undefined","flexDirection","paddingHorizontal","paddingBottom","PressableRow","accessibilityLabel","radii","control","Chevron","textSecondary","direction","title","QUERY_TYPE_LABEL","TextInput","value","onChangeText","v","multiline","autoFocus","placeholder","placeholderTextColor","textTertiary","minHeight","maxHeight","border","backgroundColor","surface","textPrimary","fontSize","lineHeight","textAlignVertical","meta","statusDanger","marginLeft","disabled"],"sourceRoot":"../../../../src","sources":["components/screens/ComposeScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HomeScreen = HomeScreen;
7
+ var _reactNative = require("react-native");
8
+ var _types = require("../../types");
9
+ var _utils = require("../../utils");
10
+ var _icons = require("../icons");
11
+ var _primitives = require("../primitives");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ const COMPOSE_TYPES = ['feedback', 'feature_request', 'bug_report'];
14
+ function ThreadRow({
15
+ thread,
16
+ theme,
17
+ onPress
18
+ }) {
19
+ const preview = thread.last_message?.body ?? '';
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.PressableRow, {
21
+ onPress: onPress,
22
+ theme: theme,
23
+ accessibilityLabel: `${_types.QUERY_TYPE_LABEL[thread.type]} thread`,
24
+ style: {
25
+ paddingHorizontal: 16,
26
+ paddingVertical: 10,
27
+ borderBottomWidth: 1,
28
+ borderBottomColor: theme.colors.border
29
+ },
30
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
31
+ style: {
32
+ flexDirection: 'row',
33
+ alignItems: 'center',
34
+ gap: 8
35
+ },
36
+ children: [thread.unread_count > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
37
+ style: {
38
+ width: 6,
39
+ height: 6,
40
+ borderRadius: 3,
41
+ backgroundColor: theme.colors.accent
42
+ }
43
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
44
+ style: {
45
+ fontSize: 11,
46
+ fontWeight: '500',
47
+ color: (0, _primitives.typeColor)(thread.type, theme)
48
+ },
49
+ children: _types.QUERY_TYPE_LABEL[thread.type]
50
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
51
+ style: [_primitives.textStyles.meta(theme), {
52
+ marginLeft: 'auto'
53
+ }],
54
+ children: thread.last_message ? (0, _utils.relativeTime)(thread.last_message.created_at) : (0, _utils.relativeTime)(thread.created_at)
55
+ })]
56
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
57
+ style: {
58
+ flexDirection: 'row',
59
+ alignItems: 'center',
60
+ gap: 8,
61
+ marginTop: 3
62
+ },
63
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
64
+ numberOfLines: 1,
65
+ style: {
66
+ flex: 1,
67
+ fontSize: 13,
68
+ color: thread.unread_count > 0 ? theme.colors.textPrimary : theme.colors.textSecondary,
69
+ fontWeight: thread.unread_count > 0 ? '500' : '400'
70
+ },
71
+ children: preview
72
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
73
+ color: theme.colors.textTertiary
74
+ })]
75
+ })]
76
+ });
77
+ }
78
+ function HomeScreen({
79
+ theme,
80
+ threads,
81
+ loading,
82
+ error,
83
+ onRetry,
84
+ onCompose,
85
+ onOpenThread,
86
+ onClose
87
+ }) {
88
+ const open = (threads ?? []).filter(t => t.status === 'open');
89
+ const resolved = (threads ?? []).filter(t => t.status === 'resolved');
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
91
+ style: {
92
+ flex: 1
93
+ },
94
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
+ style: {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ paddingHorizontal: 16,
99
+ paddingBottom: 12
100
+ },
101
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
102
+ style: _primitives.textStyles.title(theme),
103
+ children: "Support"
104
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PressableRow, {
105
+ onPress: onClose,
106
+ theme: theme,
107
+ accessibilityLabel: "Close",
108
+ style: {
109
+ marginLeft: 'auto',
110
+ padding: 6,
111
+ borderRadius: theme.radii.control
112
+ },
113
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.CloseIcon, {
114
+ color: theme.colors.textSecondary,
115
+ size: 13
116
+ })
117
+ })]
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
119
+ style: {
120
+ flex: 1
121
+ },
122
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
123
+ style: {
124
+ marginHorizontal: 16,
125
+ borderWidth: 1,
126
+ borderColor: theme.colors.border,
127
+ borderRadius: theme.radii.card,
128
+ backgroundColor: theme.colors.surface,
129
+ overflow: 'hidden'
130
+ },
131
+ children: COMPOSE_TYPES.map((type, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.PressableRow, {
132
+ onPress: () => onCompose(type),
133
+ theme: theme,
134
+ accessibilityLabel: `New ${_types.QUERY_TYPE_LABEL[type].toLowerCase()}`,
135
+ style: {
136
+ flexDirection: 'row',
137
+ alignItems: 'center',
138
+ gap: 10,
139
+ paddingHorizontal: 14,
140
+ paddingVertical: 12,
141
+ borderTopWidth: i === 0 ? 0 : 1,
142
+ borderTopColor: theme.colors.border
143
+ },
144
+ children: [(0, _primitives.typeIcon)(type, (0, _primitives.typeColor)(type, theme)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
145
+ style: {
146
+ fontSize: 14,
147
+ color: theme.colors.textPrimary,
148
+ flex: 1
149
+ },
150
+ children: _types.QUERY_TYPE_LABEL[type]
151
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
152
+ color: theme.colors.textTertiary
153
+ })]
154
+ }, type))
155
+ }), error ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.ErrorState, {
156
+ message: error,
157
+ onRetry: onRetry,
158
+ theme: theme
159
+ }) : loading && threads === null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
160
+ style: {
161
+ paddingHorizontal: 16,
162
+ paddingTop: 24,
163
+ gap: 14
164
+ },
165
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SkeletonBlock, {
166
+ width: 80,
167
+ height: 12,
168
+ theme: theme
169
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SkeletonBlock, {
170
+ width: "100%",
171
+ height: 40,
172
+ theme: theme
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SkeletonBlock, {
174
+ width: "100%",
175
+ height: 40,
176
+ theme: theme
177
+ })]
178
+ }) : (threads ?? []).length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.EmptyState, {
179
+ message: "No queries yet",
180
+ theme: theme
181
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
182
+ children: [open.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
183
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
184
+ style: {
185
+ fontSize: 11,
186
+ fontWeight: '500',
187
+ textTransform: 'uppercase',
188
+ letterSpacing: 0.4,
189
+ color: theme.colors.textTertiary,
190
+ paddingHorizontal: 16,
191
+ paddingTop: 20,
192
+ paddingBottom: 6
193
+ },
194
+ children: "Open"
195
+ }), open.map(t => /*#__PURE__*/(0, _jsxRuntime.jsx)(ThreadRow, {
196
+ thread: t,
197
+ theme: theme,
198
+ onPress: () => onOpenThread(t)
199
+ }, t.id))]
200
+ }), resolved.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
201
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
202
+ style: {
203
+ fontSize: 11,
204
+ fontWeight: '500',
205
+ textTransform: 'uppercase',
206
+ letterSpacing: 0.4,
207
+ color: theme.colors.textTertiary,
208
+ paddingHorizontal: 16,
209
+ paddingTop: 20,
210
+ paddingBottom: 6
211
+ },
212
+ children: "Resolved"
213
+ }), resolved.map(t => /*#__PURE__*/(0, _jsxRuntime.jsx)(ThreadRow, {
214
+ thread: t,
215
+ theme: theme,
216
+ onPress: () => onOpenThread(t)
217
+ }, t.id))]
218
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
219
+ style: {
220
+ height: 16
221
+ }
222
+ })]
223
+ })]
224
+ })]
225
+ });
226
+ }
227
+ //# sourceMappingURL=HomeScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_types","_utils","_icons","_primitives","_jsxRuntime","COMPOSE_TYPES","ThreadRow","thread","theme","onPress","preview","last_message","body","jsxs","PressableRow","accessibilityLabel","QUERY_TYPE_LABEL","type","style","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","colors","border","children","View","flexDirection","alignItems","gap","unread_count","jsx","width","height","borderRadius","backgroundColor","accent","Text","fontSize","fontWeight","color","typeColor","textStyles","meta","marginLeft","relativeTime","created_at","marginTop","numberOfLines","flex","textPrimary","textSecondary","Chevron","textTertiary","HomeScreen","threads","loading","error","onRetry","onCompose","onOpenThread","onClose","open","filter","t","status","resolved","paddingBottom","title","padding","radii","control","CloseIcon","size","ScrollView","marginHorizontal","borderWidth","borderColor","card","surface","overflow","map","i","toLowerCase","borderTopWidth","borderTopColor","typeIcon","ErrorState","message","paddingTop","SkeletonBlock","length","EmptyState","Fragment","textTransform","letterSpacing","id"],"sourceRoot":"../../../../src","sources":["components/screens/HomeScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,213 @@
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
+ function ThreadScreen({
15
+ theme,
16
+ thread,
17
+ onBack,
18
+ onSend
19
+ }) {
20
+ const [draft, setDraft] = (0, _react.useState)('');
21
+ const [sending, setSending] = (0, _react.useState)(false);
22
+ const [failed, setFailed] = (0, _react.useState)(false);
23
+ const scrollRef = (0, _react.useRef)(null);
24
+ const resolved = thread.status === 'resolved';
25
+ const trimmed = draft.trim();
26
+ const valid = trimmed.length >= _types.USER_MESSAGE_MIN && trimmed.length <= _types.USER_MESSAGE_MAX;
27
+ (0, _react.useEffect)(() => {
28
+ scrollRef.current?.scrollToEnd({
29
+ animated: false
30
+ });
31
+ }, [thread.messages.length]);
32
+ async function handleSend() {
33
+ if (!valid || sending || resolved) return;
34
+ setSending(true);
35
+ setFailed(false);
36
+ const ok = await onSend(trimmed);
37
+ setSending(false);
38
+ if (ok) setDraft('');else setFailed(true);
39
+ }
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
41
+ style: {
42
+ flex: 1
43
+ },
44
+ behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
45
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
46
+ style: {
47
+ flexDirection: 'row',
48
+ alignItems: 'center',
49
+ gap: 8,
50
+ paddingHorizontal: 12,
51
+ paddingBottom: 10,
52
+ borderBottomWidth: 1,
53
+ borderBottomColor: theme.colors.border
54
+ },
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PressableRow, {
56
+ onPress: onBack,
57
+ theme: theme,
58
+ accessibilityLabel: "Back",
59
+ style: {
60
+ padding: 6,
61
+ borderRadius: theme.radii.control
62
+ },
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
64
+ color: theme.colors.textSecondary,
65
+ direction: "left",
66
+ size: 12
67
+ })
68
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TypeChipView, {
69
+ type: thread.type,
70
+ theme: theme
71
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.StatusIndicator, {
72
+ status: thread.status,
73
+ theme: theme
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
75
+ style: [_primitives.textStyles.meta(theme), {
76
+ marginLeft: 'auto'
77
+ }],
78
+ children: (0, _utils.relativeTime)(thread.created_at)
79
+ })]
80
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
81
+ ref: scrollRef,
82
+ style: {
83
+ flex: 1
84
+ },
85
+ contentContainerStyle: {
86
+ padding: 16,
87
+ gap: 10
88
+ },
89
+ children: [thread.messages.map(m => {
90
+ const own = m.sender === 'user';
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
92
+ style: {
93
+ maxWidth: '85%',
94
+ alignSelf: own ? 'flex-end' : 'flex-start',
95
+ alignItems: own ? 'flex-end' : 'flex-start',
96
+ gap: 3
97
+ },
98
+ children: [!own && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
99
+ style: _primitives.textStyles.meta(theme),
100
+ children: m.admin_name ?? 'Support'
101
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
102
+ style: {
103
+ borderRadius: theme.radii.card,
104
+ paddingHorizontal: 12,
105
+ paddingVertical: 8,
106
+ backgroundColor: own ? theme.colors.accentMuted : theme.colors.surface,
107
+ borderWidth: own ? 0 : 1,
108
+ borderColor: theme.colors.border
109
+ },
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
111
+ style: _primitives.textStyles.body(theme),
112
+ children: m.body
113
+ })
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
115
+ style: _primitives.textStyles.meta(theme),
116
+ children: (0, _utils.relativeTime)(m.created_at)
117
+ })]
118
+ }, m.id);
119
+ }), resolved && thread.resolved_at && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
120
+ style: {
121
+ flexDirection: 'row',
122
+ alignItems: 'center',
123
+ gap: 10,
124
+ marginVertical: 6
125
+ },
126
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
127
+ style: {
128
+ flex: 1,
129
+ height: 1,
130
+ backgroundColor: theme.colors.border
131
+ }
132
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
133
+ style: _primitives.textStyles.meta(theme),
134
+ children: ["Resolved by ", thread.resolved_by_name ?? 'support', " \xB7", ' ', (0, _utils.formatDate)(thread.resolved_at)]
135
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
136
+ style: {
137
+ flex: 1,
138
+ height: 1,
139
+ backgroundColor: theme.colors.border
140
+ }
141
+ })]
142
+ })]
143
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
144
+ style: {
145
+ borderTopWidth: 1,
146
+ borderTopColor: theme.colors.border,
147
+ paddingHorizontal: 16,
148
+ paddingTop: 10
149
+ },
150
+ children: resolved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
151
+ style: [_primitives.textStyles.meta(theme), {
152
+ textAlign: 'center',
153
+ paddingVertical: 8
154
+ }],
155
+ children: "This thread is resolved and read-only"
156
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
157
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
158
+ value: draft,
159
+ onChangeText: v => {
160
+ setDraft(v);
161
+ setFailed(false);
162
+ },
163
+ multiline: true,
164
+ placeholder: "Reply",
165
+ placeholderTextColor: theme.colors.textTertiary,
166
+ style: {
167
+ minHeight: 60,
168
+ maxHeight: 120,
169
+ borderWidth: 1,
170
+ borderColor: theme.colors.border,
171
+ borderRadius: theme.radii.control,
172
+ backgroundColor: theme.colors.surface,
173
+ color: theme.colors.textPrimary,
174
+ fontSize: 14,
175
+ lineHeight: 20,
176
+ padding: 10,
177
+ textAlignVertical: 'top'
178
+ }
179
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
180
+ style: {
181
+ flexDirection: 'row',
182
+ alignItems: 'center',
183
+ gap: 12,
184
+ paddingVertical: 8
185
+ },
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
187
+ style: [_primitives.textStyles.meta(theme), draft.length > _types.USER_MESSAGE_MAX && {
188
+ color: theme.colors.statusDanger
189
+ }],
190
+ children: [draft.length, "/", _types.USER_MESSAGE_MAX]
191
+ }), failed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
192
+ style: {
193
+ fontSize: 11,
194
+ color: theme.colors.statusDanger
195
+ },
196
+ children: "Couldn't send \u2014 try again"
197
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
198
+ style: {
199
+ marginLeft: 'auto'
200
+ },
201
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PrimaryButton, {
202
+ label: sending ? 'Sending…' : 'Send',
203
+ onPress: handleSend,
204
+ disabled: !valid || sending,
205
+ theme: theme
206
+ })
207
+ })]
208
+ })]
209
+ })
210
+ })]
211
+ });
212
+ }
213
+ //# sourceMappingURL=ThreadScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_types","_utils","_icons","_primitives","_jsxRuntime","ThreadScreen","theme","thread","onBack","onSend","draft","setDraft","useState","sending","setSending","failed","setFailed","scrollRef","useRef","resolved","status","trimmed","trim","valid","length","USER_MESSAGE_MIN","USER_MESSAGE_MAX","useEffect","current","scrollToEnd","animated","messages","handleSend","ok","jsxs","KeyboardAvoidingView","style","flex","behavior","Platform","OS","undefined","children","View","flexDirection","alignItems","gap","paddingHorizontal","paddingBottom","borderBottomWidth","borderBottomColor","colors","border","jsx","PressableRow","onPress","accessibilityLabel","padding","borderRadius","radii","control","Chevron","color","textSecondary","direction","size","TypeChipView","type","StatusIndicator","Text","textStyles","meta","marginLeft","relativeTime","created_at","ScrollView","ref","contentContainerStyle","map","m","own","sender","maxWidth","alignSelf","admin_name","card","paddingVertical","backgroundColor","accentMuted","surface","borderWidth","borderColor","body","id","resolved_at","marginVertical","height","resolved_by_name","formatDate","borderTopWidth","borderTopColor","paddingTop","textAlign","Fragment","TextInput","value","onChangeText","v","multiline","placeholder","placeholderTextColor","textTertiary","minHeight","maxHeight","textPrimary","fontSize","lineHeight","textAlignVertical","statusDanger","PrimaryButton","label","disabled"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}