@appsupportkit/support-sdk 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/api.js +61 -12
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BottomSheet.js +1 -1
- package/lib/commonjs/components/BottomSheet.js.map +1 -1
- package/lib/commonjs/components/LauncherButton.js +4 -4
- package/lib/commonjs/components/LauncherButton.js.map +1 -1
- package/lib/commonjs/components/SupportButton.js +192 -66
- package/lib/commonjs/components/SupportButton.js.map +1 -1
- package/lib/commonjs/components/icons.js +117 -110
- package/lib/commonjs/components/icons.js.map +1 -1
- package/lib/commonjs/components/primitives.js +3 -154
- package/lib/commonjs/components/primitives.js.map +1 -1
- package/lib/commonjs/components/screens/ChatScreen.js +487 -0
- package/lib/commonjs/components/screens/ChatScreen.js.map +1 -0
- package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
- package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
- package/lib/commonjs/i18n/index.js +101 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/languages.js +95 -0
- package/lib/commonjs/i18n/languages.js.map +1 -0
- package/lib/commonjs/i18n/strings/de.js +75 -0
- package/lib/commonjs/i18n/strings/de.js.map +1 -0
- package/lib/commonjs/i18n/strings/en.js +91 -0
- package/lib/commonjs/i18n/strings/en.js.map +1 -0
- package/lib/commonjs/i18n/strings/es.js +75 -0
- package/lib/commonjs/i18n/strings/es.js.map +1 -0
- package/lib/commonjs/i18n/strings/fr.js +75 -0
- package/lib/commonjs/i18n/strings/fr.js.map +1 -0
- package/lib/commonjs/i18n/strings/hi.js +75 -0
- package/lib/commonjs/i18n/strings/hi.js.map +1 -0
- package/lib/commonjs/i18n/strings/it.js +75 -0
- package/lib/commonjs/i18n/strings/it.js.map +1 -0
- package/lib/commonjs/i18n/strings/ja.js +75 -0
- package/lib/commonjs/i18n/strings/ja.js.map +1 -0
- package/lib/commonjs/i18n/strings/ko.js +75 -0
- package/lib/commonjs/i18n/strings/ko.js.map +1 -0
- package/lib/commonjs/i18n/strings/nl.js +75 -0
- package/lib/commonjs/i18n/strings/nl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pl.js +75 -0
- package/lib/commonjs/i18n/strings/pl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pt.js +75 -0
- package/lib/commonjs/i18n/strings/pt.js.map +1 -0
- package/lib/commonjs/i18n/strings/ru.js +75 -0
- package/lib/commonjs/i18n/strings/ru.js.map +1 -0
- package/lib/commonjs/i18n/strings/tr.js +75 -0
- package/lib/commonjs/i18n/strings/tr.js.map +1 -0
- package/lib/commonjs/i18n/strings/zh.js +75 -0
- package/lib/commonjs/i18n/strings/zh.js.map +1 -0
- package/lib/commonjs/index.js +38 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/push.js +78 -3
- package/lib/commonjs/push.js.map +1 -1
- package/lib/commonjs/review.js +54 -0
- package/lib/commonjs/review.js.map +1 -0
- package/lib/commonjs/theme.js +142 -23
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/types.js +32 -3
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useSupportThreads.js +41 -24
- package/lib/commonjs/useSupportThreads.js.map +1 -1
- package/lib/commonjs/utils.js +25 -30
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/version.js +13 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/api.js +57 -10
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BottomSheet.js +1 -1
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/LauncherButton.js +5 -5
- package/lib/module/components/LauncherButton.js.map +1 -1
- package/lib/module/components/SupportButton.js +199 -73
- package/lib/module/components/SupportButton.js.map +1 -1
- package/lib/module/components/icons.js +115 -107
- package/lib/module/components/icons.js.map +1 -1
- package/lib/module/components/primitives.js +5 -147
- package/lib/module/components/primitives.js.map +1 -1
- package/lib/module/components/screens/ChatScreen.js +485 -0
- package/lib/module/components/screens/ChatScreen.js.map +1 -0
- package/lib/module/components/screens/LanguageScreen.js +147 -0
- package/lib/module/components/screens/LanguageScreen.js.map +1 -0
- package/lib/module/i18n/index.js +56 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/languages.js +88 -0
- package/lib/module/i18n/languages.js.map +1 -0
- package/lib/module/i18n/strings/de.js +71 -0
- package/lib/module/i18n/strings/de.js.map +1 -0
- package/lib/module/i18n/strings/en.js +87 -0
- package/lib/module/i18n/strings/en.js.map +1 -0
- package/lib/module/i18n/strings/es.js +71 -0
- package/lib/module/i18n/strings/es.js.map +1 -0
- package/lib/module/i18n/strings/fr.js +71 -0
- package/lib/module/i18n/strings/fr.js.map +1 -0
- package/lib/module/i18n/strings/hi.js +71 -0
- package/lib/module/i18n/strings/hi.js.map +1 -0
- package/lib/module/i18n/strings/it.js +71 -0
- package/lib/module/i18n/strings/it.js.map +1 -0
- package/lib/module/i18n/strings/ja.js +71 -0
- package/lib/module/i18n/strings/ja.js.map +1 -0
- package/lib/module/i18n/strings/ko.js +71 -0
- package/lib/module/i18n/strings/ko.js.map +1 -0
- package/lib/module/i18n/strings/nl.js +71 -0
- package/lib/module/i18n/strings/nl.js.map +1 -0
- package/lib/module/i18n/strings/pl.js +71 -0
- package/lib/module/i18n/strings/pl.js.map +1 -0
- package/lib/module/i18n/strings/pt.js +71 -0
- package/lib/module/i18n/strings/pt.js.map +1 -0
- package/lib/module/i18n/strings/ru.js +71 -0
- package/lib/module/i18n/strings/ru.js.map +1 -0
- package/lib/module/i18n/strings/tr.js +71 -0
- package/lib/module/i18n/strings/tr.js.map +1 -0
- package/lib/module/i18n/strings/zh.js +71 -0
- package/lib/module/i18n/strings/zh.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/push.js +77 -3
- package/lib/module/push.js.map +1 -1
- package/lib/module/review.js +48 -0
- package/lib/module/review.js.map +1 -0
- package/lib/module/theme.js +141 -23
- package/lib/module/theme.js.map +1 -1
- package/lib/module/types.js +32 -3
- package/lib/module/types.js.map +1 -1
- package/lib/module/useSupportThreads.js +41 -24
- package/lib/module/useSupportThreads.js.map +1 -1
- package/lib/module/utils.js +24 -29
- package/lib/module/utils.js.map +1 -1
- package/lib/module/version.js +9 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/api.d.ts +40 -10
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/SupportButton.d.ts +2 -2
- package/lib/typescript/components/SupportButton.d.ts.map +1 -1
- package/lib/typescript/components/icons.d.ts +10 -14
- package/lib/typescript/components/icons.d.ts.map +1 -1
- package/lib/typescript/components/primitives.d.ts +3 -30
- package/lib/typescript/components/primitives.d.ts.map +1 -1
- package/lib/typescript/components/screens/ChatScreen.d.ts +21 -0
- package/lib/typescript/components/screens/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
- package/lib/typescript/i18n/index.d.ts +15 -0
- package/lib/typescript/i18n/index.d.ts.map +1 -0
- package/lib/typescript/i18n/languages.d.ts +36 -0
- package/lib/typescript/i18n/languages.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/de.d.ts +3 -0
- package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/en.d.ts +86 -0
- package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/es.d.ts +3 -0
- package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/fr.d.ts +3 -0
- package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/hi.d.ts +3 -0
- package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/it.d.ts +3 -0
- package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ja.d.ts +3 -0
- package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ko.d.ts +3 -0
- package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/nl.d.ts +3 -0
- package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pl.d.ts +3 -0
- package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pt.d.ts +3 -0
- package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ru.d.ts +3 -0
- package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/tr.d.ts +3 -0
- package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/zh.d.ts +3 -0
- package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/push.d.ts +14 -2
- package/lib/typescript/push.d.ts.map +1 -1
- package/lib/typescript/review.d.ts +15 -0
- package/lib/typescript/review.d.ts.map +1 -0
- package/lib/typescript/theme.d.ts +23 -5
- package/lib/typescript/theme.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +86 -13
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/useSupportThreads.d.ts +20 -4
- package/lib/typescript/useSupportThreads.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +8 -6
- package/lib/typescript/utils.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +7 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/api.ts +75 -23
- package/src/components/BottomSheet.tsx +1 -1
- package/src/components/LauncherButton.tsx +4 -4
- package/src/components/SupportButton.tsx +244 -86
- package/src/components/icons.tsx +96 -101
- package/src/components/primitives.tsx +9 -161
- package/src/components/screens/ChatScreen.tsx +541 -0
- package/src/components/screens/LanguageScreen.tsx +172 -0
- package/src/i18n/index.ts +81 -0
- package/src/i18n/languages.ts +106 -0
- package/src/i18n/strings/de.ts +81 -0
- package/src/i18n/strings/en.ts +97 -0
- package/src/i18n/strings/es.ts +80 -0
- package/src/i18n/strings/fr.ts +81 -0
- package/src/i18n/strings/hi.ts +80 -0
- package/src/i18n/strings/it.ts +80 -0
- package/src/i18n/strings/ja.ts +80 -0
- package/src/i18n/strings/ko.ts +79 -0
- package/src/i18n/strings/nl.ts +80 -0
- package/src/i18n/strings/pl.ts +80 -0
- package/src/i18n/strings/pt.ts +80 -0
- package/src/i18n/strings/ru.ts +80 -0
- package/src/i18n/strings/tr.ts +80 -0
- package/src/i18n/strings/zh.ts +78 -0
- package/src/index.tsx +13 -0
- package/src/push.ts +100 -2
- package/src/review.ts +54 -0
- package/src/theme.ts +182 -28
- package/src/types.ts +85 -13
- package/src/useSupportThreads.ts +61 -28
- package/src/utils.ts +27 -29
- package/src/version.ts +6 -0
- package/lib/commonjs/components/screens/ComposeScreen.js +0 -228
- package/lib/commonjs/components/screens/ComposeScreen.js.map +0 -1
- package/lib/commonjs/components/screens/HomeScreen.js +0 -286
- package/lib/commonjs/components/screens/HomeScreen.js.map +0 -1
- package/lib/commonjs/components/screens/ThreadScreen.js +0 -327
- package/lib/commonjs/components/screens/ThreadScreen.js.map +0 -1
- package/lib/module/components/screens/ComposeScreen.js +0 -224
- package/lib/module/components/screens/ComposeScreen.js.map +0 -1
- package/lib/module/components/screens/HomeScreen.js +0 -282
- package/lib/module/components/screens/HomeScreen.js.map +0 -1
- package/lib/module/components/screens/ThreadScreen.js +0 -325
- package/lib/module/components/screens/ThreadScreen.js.map +0 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts +0 -10
- package/lib/typescript/components/screens/ComposeScreen.d.ts.map +0 -1
- package/lib/typescript/components/screens/HomeScreen.d.ts +0 -14
- package/lib/typescript/components/screens/HomeScreen.d.ts.map +0 -1
- package/lib/typescript/components/screens/ThreadScreen.d.ts +0 -10
- package/lib/typescript/components/screens/ThreadScreen.d.ts.map +0 -1
- package/src/components/screens/ComposeScreen.tsx +0 -233
- package/src/components/screens/HomeScreen.tsx +0 -287
- package/src/components/screens/ThreadScreen.tsx +0 -397
|
@@ -1,327 +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) {
|
|
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
|
-
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;
|
|
32
|
-
const day = previous === null || !(0, _utils.isSameDay)(previous.created_at, message.created_at) ? (0, _utils.dayLabel)(message.created_at) : null;
|
|
33
|
-
const startsUnread = message.id === firstUnreadId;
|
|
34
|
-
return {
|
|
35
|
-
message,
|
|
36
|
-
// A separator always breaks a group.
|
|
37
|
-
firstInGroup: day !== null || startsUnread || !withinGroup(previous, message),
|
|
38
|
-
lastInGroup: next === null || next.id === firstUnreadId || !(0, _utils.isSameDay)(next.created_at, message.created_at) || !withinGroup(next, message),
|
|
39
|
-
day,
|
|
40
|
-
startsUnread
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
function Separator({
|
|
45
|
-
label,
|
|
46
|
-
theme,
|
|
47
|
-
tone = 'muted'
|
|
48
|
-
}) {
|
|
49
|
-
const color = tone === 'accent' ? theme.colors.accent : theme.colors.textTertiary;
|
|
50
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
51
|
-
style: {
|
|
52
|
-
flexDirection: 'row',
|
|
53
|
-
alignItems: 'center',
|
|
54
|
-
gap: 10,
|
|
55
|
-
paddingVertical: 6
|
|
56
|
-
},
|
|
57
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
58
|
-
style: {
|
|
59
|
-
flex: 1,
|
|
60
|
-
height: 1,
|
|
61
|
-
backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
|
|
62
|
-
}
|
|
63
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
64
|
-
style: {
|
|
65
|
-
fontSize: 11,
|
|
66
|
-
fontWeight: '600',
|
|
67
|
-
letterSpacing: 0.3,
|
|
68
|
-
color
|
|
69
|
-
},
|
|
70
|
-
children: label
|
|
71
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
72
|
-
style: {
|
|
73
|
-
flex: 1,
|
|
74
|
-
height: 1,
|
|
75
|
-
backgroundColor: tone === 'accent' ? theme.colors.accentMuted : theme.colors.border
|
|
76
|
-
}
|
|
77
|
-
})]
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
function MessageBubble({
|
|
81
|
-
row,
|
|
82
|
-
theme
|
|
83
|
-
}) {
|
|
84
|
-
const {
|
|
85
|
-
message,
|
|
86
|
-
firstInGroup,
|
|
87
|
-
lastInGroup
|
|
88
|
-
} = row;
|
|
89
|
-
const own = message.sender === 'user';
|
|
90
|
-
const round = theme.radii.bubble;
|
|
91
|
-
const tight = theme.radii.bubbleTail;
|
|
92
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
93
|
-
style: {
|
|
94
|
-
maxWidth: '86%',
|
|
95
|
-
alignSelf: own ? 'flex-end' : 'flex-start',
|
|
96
|
-
alignItems: own ? 'flex-end' : 'flex-start',
|
|
97
|
-
marginTop: firstInGroup ? 10 : 2,
|
|
98
|
-
gap: 4
|
|
99
|
-
},
|
|
100
|
-
children: [!own && firstInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
101
|
-
style: [_primitives.textStyles.meta(theme), {
|
|
102
|
-
paddingHorizontal: 4
|
|
103
|
-
}],
|
|
104
|
-
children: message.admin_name ?? 'Support'
|
|
105
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
106
|
-
style: {
|
|
107
|
-
paddingHorizontal: 14,
|
|
108
|
-
paddingVertical: 10,
|
|
109
|
-
backgroundColor: own ? theme.colors.accent : theme.colors.surface,
|
|
110
|
-
borderWidth: own ? 0 : 1,
|
|
111
|
-
borderColor: theme.colors.border,
|
|
112
|
-
borderTopLeftRadius: own || firstInGroup ? round : tight,
|
|
113
|
-
borderBottomLeftRadius: own || lastInGroup ? round : tight,
|
|
114
|
-
borderTopRightRadius: !own || firstInGroup ? round : tight,
|
|
115
|
-
borderBottomRightRadius: !own || lastInGroup ? round : tight
|
|
116
|
-
},
|
|
117
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
118
|
-
style: [_primitives.textStyles.body(theme), own && {
|
|
119
|
-
color: theme.colors.accentForeground
|
|
120
|
-
}],
|
|
121
|
-
children: message.body
|
|
122
|
-
})
|
|
123
|
-
}), lastInGroup && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
124
|
-
style: [_primitives.textStyles.meta(theme), {
|
|
125
|
-
paddingHorizontal: 4
|
|
126
|
-
}],
|
|
127
|
-
children: (0, _utils.formatTime)(message.created_at)
|
|
128
|
-
})]
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
function ThreadScreen({
|
|
132
|
-
theme,
|
|
133
|
-
thread,
|
|
134
|
-
onBack,
|
|
135
|
-
onSend
|
|
136
|
-
}) {
|
|
137
|
-
const [draft, setDraft] = (0, _react.useState)('');
|
|
138
|
-
const [sending, setSending] = (0, _react.useState)(false);
|
|
139
|
-
const [failedMessage, setFailedMessage] = (0, _react.useState)(null);
|
|
140
|
-
const scrollRef = (0, _react.useRef)(null);
|
|
141
|
-
// Captured once: opening the thread marks it read within a tick, but the
|
|
142
|
-
// "New" divider should stay put while the user is reading.
|
|
143
|
-
const [unreadOnOpen] = (0, _react.useState)(thread.unread_count);
|
|
144
|
-
const resolved = thread.status === 'resolved';
|
|
145
|
-
const trimmed = draft.trim();
|
|
146
|
-
const valid = trimmed.length >= _types.USER_MESSAGE_MIN && trimmed.length <= _types.USER_MESSAGE_MAX;
|
|
147
|
-
const tooShort = trimmed.length > 0 && trimmed.length < _types.USER_MESSAGE_MIN;
|
|
148
|
-
const rows = (0, _react.useMemo)(() => buildRows(thread.messages, unreadOnOpen), [thread.messages, unreadOnOpen]);
|
|
149
|
-
(0, _react.useEffect)(() => {
|
|
150
|
-
scrollRef.current?.scrollToEnd({
|
|
151
|
-
animated: false
|
|
152
|
-
});
|
|
153
|
-
}, [thread.messages.length]);
|
|
154
|
-
async function handleSend() {
|
|
155
|
-
if (!valid || sending || resolved) return;
|
|
156
|
-
setSending(true);
|
|
157
|
-
setFailedMessage(null);
|
|
158
|
-
const errorMessage = await onSend(trimmed);
|
|
159
|
-
setSending(false);
|
|
160
|
-
if (errorMessage === null) setDraft('');else setFailedMessage(errorMessage);
|
|
161
|
-
}
|
|
162
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.KeyboardAvoidingView, {
|
|
163
|
-
style: {
|
|
164
|
-
flex: 1
|
|
165
|
-
},
|
|
166
|
-
behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
|
|
167
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
168
|
-
style: {
|
|
169
|
-
flexDirection: 'row',
|
|
170
|
-
alignItems: 'center',
|
|
171
|
-
gap: 10,
|
|
172
|
-
paddingHorizontal: 12,
|
|
173
|
-
paddingBottom: 12,
|
|
174
|
-
borderBottomWidth: 1,
|
|
175
|
-
borderBottomColor: theme.colors.border
|
|
176
|
-
},
|
|
177
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
|
|
178
|
-
onPress: onBack,
|
|
179
|
-
theme: theme,
|
|
180
|
-
accessibilityLabel: "Back to conversations",
|
|
181
|
-
size: 32,
|
|
182
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Chevron, {
|
|
183
|
-
color: theme.colors.textSecondary,
|
|
184
|
-
direction: "left",
|
|
185
|
-
size: 12
|
|
186
|
-
})
|
|
187
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.TypeChipView, {
|
|
188
|
-
type: thread.type,
|
|
189
|
-
theme: theme
|
|
190
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.StatusIndicator, {
|
|
191
|
-
status: thread.status,
|
|
192
|
-
theme: theme
|
|
193
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
194
|
-
style: [_primitives.textStyles.meta(theme), {
|
|
195
|
-
marginLeft: 'auto'
|
|
196
|
-
}],
|
|
197
|
-
children: (0, _utils.relativeTime)(thread.created_at)
|
|
198
|
-
})]
|
|
199
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
|
|
200
|
-
ref: scrollRef,
|
|
201
|
-
style: {
|
|
202
|
-
flex: 1
|
|
203
|
-
},
|
|
204
|
-
contentContainerStyle: {
|
|
205
|
-
paddingHorizontal: 16,
|
|
206
|
-
paddingVertical: 12
|
|
207
|
-
},
|
|
208
|
-
keyboardShouldPersistTaps: "handled",
|
|
209
|
-
onContentSizeChange: () => scrollRef.current?.scrollToEnd({
|
|
210
|
-
animated: false
|
|
211
|
-
}),
|
|
212
|
-
children: [rows.map(row => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
213
|
-
children: [row.day !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
|
|
214
|
-
label: row.day,
|
|
215
|
-
theme: theme
|
|
216
|
-
}), row.startsUnread && /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
|
|
217
|
-
label: "New",
|
|
218
|
-
theme: theme,
|
|
219
|
-
tone: "accent"
|
|
220
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageBubble, {
|
|
221
|
-
row: row,
|
|
222
|
-
theme: theme
|
|
223
|
-
})]
|
|
224
|
-
}, row.message.id)), resolved && thread.resolved_at !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
225
|
-
style: {
|
|
226
|
-
marginTop: 16
|
|
227
|
-
},
|
|
228
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Separator, {
|
|
229
|
-
label: `Resolved by ${thread.resolved_by_name ?? 'support'} · ${(0, _utils.formatDate)(thread.resolved_at)}`,
|
|
230
|
-
theme: theme
|
|
231
|
-
})
|
|
232
|
-
})]
|
|
233
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
234
|
-
style: {
|
|
235
|
-
borderTopWidth: 1,
|
|
236
|
-
borderTopColor: theme.colors.border,
|
|
237
|
-
paddingHorizontal: 16,
|
|
238
|
-
paddingTop: 10,
|
|
239
|
-
paddingBottom: 4
|
|
240
|
-
},
|
|
241
|
-
children: resolved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
242
|
-
style: {
|
|
243
|
-
alignItems: 'center',
|
|
244
|
-
paddingVertical: 10,
|
|
245
|
-
borderRadius: theme.radii.control,
|
|
246
|
-
backgroundColor: theme.colors.surface
|
|
247
|
-
},
|
|
248
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
249
|
-
style: _primitives.textStyles.secondary(theme),
|
|
250
|
-
children: "This conversation is resolved and read-only"
|
|
251
|
-
})
|
|
252
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
253
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
254
|
-
style: {
|
|
255
|
-
flexDirection: 'row',
|
|
256
|
-
alignItems: 'flex-end',
|
|
257
|
-
gap: 10
|
|
258
|
-
},
|
|
259
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
260
|
-
value: draft,
|
|
261
|
-
onChangeText: v => {
|
|
262
|
-
setDraft(v);
|
|
263
|
-
setFailedMessage(null);
|
|
264
|
-
},
|
|
265
|
-
multiline: true,
|
|
266
|
-
editable: !sending,
|
|
267
|
-
placeholder: "Write a reply\u2026",
|
|
268
|
-
placeholderTextColor: theme.colors.textTertiary,
|
|
269
|
-
style: {
|
|
270
|
-
flex: 1,
|
|
271
|
-
minHeight: 44,
|
|
272
|
-
maxHeight: 120,
|
|
273
|
-
borderWidth: 1,
|
|
274
|
-
borderColor: theme.colors.border,
|
|
275
|
-
borderRadius: theme.radii.cardLg,
|
|
276
|
-
backgroundColor: theme.colors.surface,
|
|
277
|
-
color: theme.colors.textPrimary,
|
|
278
|
-
fontSize: 15,
|
|
279
|
-
lineHeight: 20,
|
|
280
|
-
paddingHorizontal: 14,
|
|
281
|
-
paddingTop: 12,
|
|
282
|
-
paddingBottom: 12,
|
|
283
|
-
textAlignVertical: 'top'
|
|
284
|
-
}
|
|
285
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.IconButton, {
|
|
286
|
-
onPress: handleSend,
|
|
287
|
-
theme: theme,
|
|
288
|
-
tone: "accent",
|
|
289
|
-
size: 44,
|
|
290
|
-
disabled: !valid || sending,
|
|
291
|
-
accessibilityLabel: sending ? 'Sending' : 'Send reply',
|
|
292
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ArrowUpIcon, {
|
|
293
|
-
color: theme.colors.accentForeground,
|
|
294
|
-
size: 19
|
|
295
|
-
})
|
|
296
|
-
})]
|
|
297
|
-
}), (tooShort || draft.length >= COUNTER_VISIBLE_FROM || failedMessage !== null) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
298
|
-
style: {
|
|
299
|
-
flexDirection: 'row',
|
|
300
|
-
alignItems: 'center',
|
|
301
|
-
gap: 10,
|
|
302
|
-
paddingTop: 8,
|
|
303
|
-
paddingHorizontal: 4
|
|
304
|
-
},
|
|
305
|
-
children: [failedMessage !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
306
|
-
style: {
|
|
307
|
-
fontSize: 12,
|
|
308
|
-
color: theme.colors.statusDanger
|
|
309
|
-
},
|
|
310
|
-
children: failedMessage
|
|
311
|
-
}) : tooShort ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
312
|
-
style: _primitives.textStyles.meta(theme),
|
|
313
|
-
children: ["At least ", _types.USER_MESSAGE_MIN, " characters"]
|
|
314
|
-
}) : null, draft.length >= COUNTER_VISIBLE_FROM && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
315
|
-
style: [_primitives.textStyles.meta(theme), {
|
|
316
|
-
marginLeft: 'auto'
|
|
317
|
-
}, draft.length > _types.USER_MESSAGE_MAX && {
|
|
318
|
-
color: theme.colors.statusDanger
|
|
319
|
-
}],
|
|
320
|
-
children: [draft.length, "/", _types.USER_MESSAGE_MAX]
|
|
321
|
-
})]
|
|
322
|
-
})]
|
|
323
|
-
})
|
|
324
|
-
})]
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
//# 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","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","admin_name","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","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","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","resolved_by_name","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"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,224 +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 { QUERY_TYPE_LABEL, USER_MESSAGE_MAX, USER_MESSAGE_MIN } from '../../types';
|
|
6
|
-
import { CheckIcon, Chevron } from '../icons';
|
|
7
|
-
import { IconButton, PrimaryButton, textStyles, TypeGlyph } from '../primitives';
|
|
8
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
-
const PROMPT = {
|
|
10
|
-
feedback: 'What should we know?',
|
|
11
|
-
feature_request: 'What would you like to see?',
|
|
12
|
-
bug_report: 'What happened, and what did you expect?'
|
|
13
|
-
};
|
|
14
|
-
const SUBTITLE = {
|
|
15
|
-
feedback: 'Good or bad — it goes straight to the team.',
|
|
16
|
-
feature_request: 'Tell us what you are trying to do.',
|
|
17
|
-
bug_report: 'Steps, screen, and what you expected all help.'
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/** Scales in once on success — the only celebratory motion in the SDK. */
|
|
21
|
-
function SentMark({
|
|
22
|
-
theme
|
|
23
|
-
}) {
|
|
24
|
-
const scale = useRef(new Animated.Value(0.6)).current;
|
|
25
|
-
const opacity = useRef(new Animated.Value(0)).current;
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
Animated.parallel([Animated.timing(scale, {
|
|
28
|
-
toValue: 1,
|
|
29
|
-
duration: 320,
|
|
30
|
-
easing: Easing.bezier(0.16, 1, 0.3, 1),
|
|
31
|
-
useNativeDriver: true
|
|
32
|
-
}), Animated.timing(opacity, {
|
|
33
|
-
toValue: 1,
|
|
34
|
-
duration: 200,
|
|
35
|
-
easing: Easing.out(Easing.cubic),
|
|
36
|
-
useNativeDriver: true
|
|
37
|
-
})]).start();
|
|
38
|
-
}, [scale, opacity]);
|
|
39
|
-
return /*#__PURE__*/_jsx(Animated.View, {
|
|
40
|
-
style: {
|
|
41
|
-
width: 56,
|
|
42
|
-
height: 56,
|
|
43
|
-
borderRadius: 28,
|
|
44
|
-
backgroundColor: theme.colors.statusResolvedBg,
|
|
45
|
-
borderWidth: 1,
|
|
46
|
-
borderColor: theme.colors.statusResolved,
|
|
47
|
-
alignItems: 'center',
|
|
48
|
-
justifyContent: 'center',
|
|
49
|
-
opacity,
|
|
50
|
-
transform: [{
|
|
51
|
-
scale
|
|
52
|
-
}]
|
|
53
|
-
},
|
|
54
|
-
children: /*#__PURE__*/_jsx(CheckIcon, {
|
|
55
|
-
color: theme.colors.statusResolved,
|
|
56
|
-
size: 20
|
|
57
|
-
})
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
export function ComposeScreen({
|
|
61
|
-
theme,
|
|
62
|
-
type,
|
|
63
|
-
onBack,
|
|
64
|
-
onSubmit
|
|
65
|
-
}) {
|
|
66
|
-
const [message, setMessage] = useState('');
|
|
67
|
-
const [submitting, setSubmitting] = useState(false);
|
|
68
|
-
const [failedMessage, setFailedMessage] = useState(null);
|
|
69
|
-
const [sent, setSent] = useState(false);
|
|
70
|
-
const trimmed = message.trim();
|
|
71
|
-
const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
|
|
72
|
-
const overLimit = message.length > USER_MESSAGE_MAX;
|
|
73
|
-
const tooShort = trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN;
|
|
74
|
-
async function handleSubmit() {
|
|
75
|
-
if (!valid || submitting) return;
|
|
76
|
-
setSubmitting(true);
|
|
77
|
-
setFailedMessage(null);
|
|
78
|
-
const errorMessage = await onSubmit(trimmed);
|
|
79
|
-
setSubmitting(false);
|
|
80
|
-
if (errorMessage === null) setSent(true);else setFailedMessage(errorMessage);
|
|
81
|
-
}
|
|
82
|
-
if (sent) {
|
|
83
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
84
|
-
style: {
|
|
85
|
-
flex: 1,
|
|
86
|
-
alignItems: 'center',
|
|
87
|
-
justifyContent: 'center',
|
|
88
|
-
gap: 14,
|
|
89
|
-
paddingHorizontal: 32,
|
|
90
|
-
paddingBottom: 40
|
|
91
|
-
},
|
|
92
|
-
children: [/*#__PURE__*/_jsx(SentMark, {
|
|
93
|
-
theme: theme
|
|
94
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
95
|
-
style: textStyles.title(theme),
|
|
96
|
-
children: "Sent"
|
|
97
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
98
|
-
style: [textStyles.secondary(theme), {
|
|
99
|
-
textAlign: 'center'
|
|
100
|
-
}],
|
|
101
|
-
children: "We'll reply right here. You'll find the conversation under Open, and the button shows a badge when we answer."
|
|
102
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
103
|
-
style: {
|
|
104
|
-
marginTop: 6
|
|
105
|
-
},
|
|
106
|
-
children: /*#__PURE__*/_jsx(PrimaryButton, {
|
|
107
|
-
label: "Done",
|
|
108
|
-
onPress: onBack,
|
|
109
|
-
theme: theme
|
|
110
|
-
})
|
|
111
|
-
})]
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
return /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
|
|
115
|
-
style: {
|
|
116
|
-
flex: 1
|
|
117
|
-
},
|
|
118
|
-
behavior: Platform.OS === 'ios' ? 'padding' : undefined,
|
|
119
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
120
|
-
style: {
|
|
121
|
-
flexDirection: 'row',
|
|
122
|
-
alignItems: 'center',
|
|
123
|
-
gap: 10,
|
|
124
|
-
paddingHorizontal: 12,
|
|
125
|
-
paddingBottom: 14
|
|
126
|
-
},
|
|
127
|
-
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
128
|
-
onPress: onBack,
|
|
129
|
-
theme: theme,
|
|
130
|
-
accessibilityLabel: "Back to conversations",
|
|
131
|
-
size: 32,
|
|
132
|
-
children: /*#__PURE__*/_jsx(Chevron, {
|
|
133
|
-
color: theme.colors.textSecondary,
|
|
134
|
-
direction: "left",
|
|
135
|
-
size: 12
|
|
136
|
-
})
|
|
137
|
-
}), /*#__PURE__*/_jsx(TypeGlyph, {
|
|
138
|
-
type: type,
|
|
139
|
-
theme: theme,
|
|
140
|
-
size: 32
|
|
141
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
142
|
-
style: {
|
|
143
|
-
flex: 1,
|
|
144
|
-
gap: 1
|
|
145
|
-
},
|
|
146
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
147
|
-
style: textStyles.heading(theme),
|
|
148
|
-
children: QUERY_TYPE_LABEL[type]
|
|
149
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
150
|
-
style: textStyles.meta(theme),
|
|
151
|
-
children: SUBTITLE[type]
|
|
152
|
-
})]
|
|
153
|
-
})]
|
|
154
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
155
|
-
style: {
|
|
156
|
-
flex: 1,
|
|
157
|
-
paddingHorizontal: 16
|
|
158
|
-
},
|
|
159
|
-
children: [/*#__PURE__*/_jsx(TextInput, {
|
|
160
|
-
value: message,
|
|
161
|
-
onChangeText: v => {
|
|
162
|
-
setMessage(v);
|
|
163
|
-
setFailedMessage(null);
|
|
164
|
-
},
|
|
165
|
-
multiline: true,
|
|
166
|
-
autoFocus: true,
|
|
167
|
-
editable: !submitting,
|
|
168
|
-
placeholder: PROMPT[type],
|
|
169
|
-
placeholderTextColor: theme.colors.textTertiary,
|
|
170
|
-
style: {
|
|
171
|
-
minHeight: 140,
|
|
172
|
-
maxHeight: 240,
|
|
173
|
-
borderWidth: 1,
|
|
174
|
-
borderColor: theme.colors.border,
|
|
175
|
-
borderRadius: theme.radii.card,
|
|
176
|
-
backgroundColor: theme.colors.surface,
|
|
177
|
-
color: theme.colors.textPrimary,
|
|
178
|
-
fontSize: 15,
|
|
179
|
-
lineHeight: 21,
|
|
180
|
-
padding: 14,
|
|
181
|
-
textAlignVertical: 'top'
|
|
182
|
-
}
|
|
183
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
184
|
-
style: {
|
|
185
|
-
flexDirection: 'row',
|
|
186
|
-
alignItems: 'center',
|
|
187
|
-
gap: 10,
|
|
188
|
-
paddingTop: 10,
|
|
189
|
-
paddingHorizontal: 2,
|
|
190
|
-
minHeight: 20
|
|
191
|
-
},
|
|
192
|
-
children: [failedMessage !== null ? /*#__PURE__*/_jsx(Text, {
|
|
193
|
-
style: {
|
|
194
|
-
fontSize: 12,
|
|
195
|
-
color: theme.colors.statusDanger
|
|
196
|
-
},
|
|
197
|
-
children: failedMessage
|
|
198
|
-
}) : tooShort ? /*#__PURE__*/_jsxs(Text, {
|
|
199
|
-
style: textStyles.meta(theme),
|
|
200
|
-
children: ["At least ", USER_MESSAGE_MIN, " characters"]
|
|
201
|
-
}) : null, /*#__PURE__*/_jsxs(Text, {
|
|
202
|
-
style: [textStyles.meta(theme), {
|
|
203
|
-
marginLeft: 'auto'
|
|
204
|
-
}, overLimit && {
|
|
205
|
-
color: theme.colors.statusDanger
|
|
206
|
-
}],
|
|
207
|
-
children: [message.length, "/", USER_MESSAGE_MAX]
|
|
208
|
-
})]
|
|
209
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
210
|
-
style: {
|
|
211
|
-
paddingTop: 12
|
|
212
|
-
},
|
|
213
|
-
children: /*#__PURE__*/_jsx(PrimaryButton, {
|
|
214
|
-
label: submitting ? 'Sending…' : 'Send',
|
|
215
|
-
onPress: handleSubmit,
|
|
216
|
-
disabled: !valid || submitting,
|
|
217
|
-
theme: theme,
|
|
218
|
-
fullWidth: true
|
|
219
|
-
})
|
|
220
|
-
})]
|
|
221
|
-
})]
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=ComposeScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","Animated","Easing","KeyboardAvoidingView","Platform","Text","TextInput","View","QUERY_TYPE_LABEL","USER_MESSAGE_MAX","USER_MESSAGE_MIN","CheckIcon","Chevron","IconButton","PrimaryButton","textStyles","TypeGlyph","jsx","_jsx","jsxs","_jsxs","PROMPT","feedback","feature_request","bug_report","SUBTITLE","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","type","onBack","onSubmit","message","setMessage","submitting","setSubmitting","failedMessage","setFailedMessage","sent","setSent","trimmed","trim","valid","length","overLimit","tooShort","handleSubmit","errorMessage","flex","gap","paddingHorizontal","paddingBottom","title","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","marginLeft","disabled","fullWidth"],"sourceRoot":"../../../../src","sources":["components/screens/ComposeScreen.tsx"],"mappings":"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","ignoreList":[]}
|