@appsupportkit/support-sdk 0.1.2 → 0.3.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 (224) hide show
  1. package/lib/commonjs/api.js +17 -2
  2. package/lib/commonjs/api.js.map +1 -1
  3. package/lib/commonjs/components/BottomSheet.js +67 -47
  4. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  5. package/lib/commonjs/components/LauncherButton.js +177 -0
  6. package/lib/commonjs/components/LauncherButton.js.map +1 -0
  7. package/lib/commonjs/components/SupportButton.js +168 -190
  8. package/lib/commonjs/components/SupportButton.js.map +1 -1
  9. package/lib/commonjs/components/icons.js +110 -23
  10. package/lib/commonjs/components/icons.js.map +1 -1
  11. package/lib/commonjs/components/primitives.js +191 -44
  12. package/lib/commonjs/components/primitives.js.map +1 -1
  13. package/lib/commonjs/components/screens/ComposeScreen.js +108 -60
  14. package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
  15. package/lib/commonjs/components/screens/HomeScreen.js +221 -118
  16. package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
  17. package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
  18. package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
  19. package/lib/commonjs/components/screens/ThreadScreen.js +237 -111
  20. package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
  21. package/lib/commonjs/i18n/index.js +101 -0
  22. package/lib/commonjs/i18n/index.js.map +1 -0
  23. package/lib/commonjs/i18n/languages.js +95 -0
  24. package/lib/commonjs/i18n/languages.js.map +1 -0
  25. package/lib/commonjs/i18n/strings/de.js +72 -0
  26. package/lib/commonjs/i18n/strings/de.js.map +1 -0
  27. package/lib/commonjs/i18n/strings/en.js +88 -0
  28. package/lib/commonjs/i18n/strings/en.js.map +1 -0
  29. package/lib/commonjs/i18n/strings/es.js +72 -0
  30. package/lib/commonjs/i18n/strings/es.js.map +1 -0
  31. package/lib/commonjs/i18n/strings/fr.js +72 -0
  32. package/lib/commonjs/i18n/strings/fr.js.map +1 -0
  33. package/lib/commonjs/i18n/strings/hi.js +72 -0
  34. package/lib/commonjs/i18n/strings/hi.js.map +1 -0
  35. package/lib/commonjs/i18n/strings/it.js +72 -0
  36. package/lib/commonjs/i18n/strings/it.js.map +1 -0
  37. package/lib/commonjs/i18n/strings/ja.js +72 -0
  38. package/lib/commonjs/i18n/strings/ja.js.map +1 -0
  39. package/lib/commonjs/i18n/strings/ko.js +72 -0
  40. package/lib/commonjs/i18n/strings/ko.js.map +1 -0
  41. package/lib/commonjs/i18n/strings/nl.js +72 -0
  42. package/lib/commonjs/i18n/strings/nl.js.map +1 -0
  43. package/lib/commonjs/i18n/strings/pl.js +72 -0
  44. package/lib/commonjs/i18n/strings/pl.js.map +1 -0
  45. package/lib/commonjs/i18n/strings/pt.js +72 -0
  46. package/lib/commonjs/i18n/strings/pt.js.map +1 -0
  47. package/lib/commonjs/i18n/strings/ru.js +72 -0
  48. package/lib/commonjs/i18n/strings/ru.js.map +1 -0
  49. package/lib/commonjs/i18n/strings/tr.js +72 -0
  50. package/lib/commonjs/i18n/strings/tr.js.map +1 -0
  51. package/lib/commonjs/i18n/strings/zh.js +72 -0
  52. package/lib/commonjs/i18n/strings/zh.js.map +1 -0
  53. package/lib/commonjs/index.js +31 -0
  54. package/lib/commonjs/index.js.map +1 -1
  55. package/lib/commonjs/theme.js +136 -17
  56. package/lib/commonjs/theme.js.map +1 -1
  57. package/lib/commonjs/types.js +18 -0
  58. package/lib/commonjs/types.js.map +1 -1
  59. package/lib/commonjs/unread.js +92 -0
  60. package/lib/commonjs/unread.js.map +1 -0
  61. package/lib/commonjs/useSupportThreads.js +296 -0
  62. package/lib/commonjs/useSupportThreads.js.map +1 -0
  63. package/lib/commonjs/utils.js +58 -10
  64. package/lib/commonjs/utils.js.map +1 -1
  65. package/lib/module/api.js +16 -2
  66. package/lib/module/api.js.map +1 -1
  67. package/lib/module/components/BottomSheet.js +68 -48
  68. package/lib/module/components/BottomSheet.js.map +1 -1
  69. package/lib/module/components/LauncherButton.js +172 -0
  70. package/lib/module/components/LauncherButton.js.map +1 -0
  71. package/lib/module/components/SupportButton.js +172 -194
  72. package/lib/module/components/SupportButton.js.map +1 -1
  73. package/lib/module/components/icons.js +107 -22
  74. package/lib/module/components/icons.js.map +1 -1
  75. package/lib/module/components/primitives.js +187 -45
  76. package/lib/module/components/primitives.js.map +1 -1
  77. package/lib/module/components/screens/ComposeScreen.js +114 -64
  78. package/lib/module/components/screens/ComposeScreen.js.map +1 -1
  79. package/lib/module/components/screens/HomeScreen.js +224 -121
  80. package/lib/module/components/screens/HomeScreen.js.map +1 -1
  81. package/lib/module/components/screens/LanguageScreen.js +147 -0
  82. package/lib/module/components/screens/LanguageScreen.js.map +1 -0
  83. package/lib/module/components/screens/ThreadScreen.js +243 -115
  84. package/lib/module/components/screens/ThreadScreen.js.map +1 -1
  85. package/lib/module/i18n/index.js +56 -0
  86. package/lib/module/i18n/index.js.map +1 -0
  87. package/lib/module/i18n/languages.js +88 -0
  88. package/lib/module/i18n/languages.js.map +1 -0
  89. package/lib/module/i18n/strings/de.js +68 -0
  90. package/lib/module/i18n/strings/de.js.map +1 -0
  91. package/lib/module/i18n/strings/en.js +84 -0
  92. package/lib/module/i18n/strings/en.js.map +1 -0
  93. package/lib/module/i18n/strings/es.js +68 -0
  94. package/lib/module/i18n/strings/es.js.map +1 -0
  95. package/lib/module/i18n/strings/fr.js +68 -0
  96. package/lib/module/i18n/strings/fr.js.map +1 -0
  97. package/lib/module/i18n/strings/hi.js +68 -0
  98. package/lib/module/i18n/strings/hi.js.map +1 -0
  99. package/lib/module/i18n/strings/it.js +68 -0
  100. package/lib/module/i18n/strings/it.js.map +1 -0
  101. package/lib/module/i18n/strings/ja.js +68 -0
  102. package/lib/module/i18n/strings/ja.js.map +1 -0
  103. package/lib/module/i18n/strings/ko.js +68 -0
  104. package/lib/module/i18n/strings/ko.js.map +1 -0
  105. package/lib/module/i18n/strings/nl.js +68 -0
  106. package/lib/module/i18n/strings/nl.js.map +1 -0
  107. package/lib/module/i18n/strings/pl.js +68 -0
  108. package/lib/module/i18n/strings/pl.js.map +1 -0
  109. package/lib/module/i18n/strings/pt.js +68 -0
  110. package/lib/module/i18n/strings/pt.js.map +1 -0
  111. package/lib/module/i18n/strings/ru.js +68 -0
  112. package/lib/module/i18n/strings/ru.js.map +1 -0
  113. package/lib/module/i18n/strings/tr.js +68 -0
  114. package/lib/module/i18n/strings/tr.js.map +1 -0
  115. package/lib/module/i18n/strings/zh.js +68 -0
  116. package/lib/module/i18n/strings/zh.js.map +1 -0
  117. package/lib/module/index.js +1 -0
  118. package/lib/module/index.js.map +1 -1
  119. package/lib/module/theme.js +135 -16
  120. package/lib/module/theme.js.map +1 -1
  121. package/lib/module/types.js +18 -0
  122. package/lib/module/types.js.map +1 -1
  123. package/lib/module/unread.js +83 -0
  124. package/lib/module/unread.js.map +1 -0
  125. package/lib/module/useSupportThreads.js +291 -0
  126. package/lib/module/useSupportThreads.js.map +1 -0
  127. package/lib/module/utils.js +55 -10
  128. package/lib/module/utils.js.map +1 -1
  129. package/lib/typescript/api.d.ts +9 -0
  130. package/lib/typescript/api.d.ts.map +1 -1
  131. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  132. package/lib/typescript/components/LauncherButton.d.ts +14 -0
  133. package/lib/typescript/components/LauncherButton.d.ts.map +1 -0
  134. package/lib/typescript/components/SupportButton.d.ts +3 -3
  135. package/lib/typescript/components/SupportButton.d.ts.map +1 -1
  136. package/lib/typescript/components/icons.d.ts +18 -2
  137. package/lib/typescript/components/icons.d.ts.map +1 -1
  138. package/lib/typescript/components/primitives.d.ts +42 -7
  139. package/lib/typescript/components/primitives.d.ts.map +1 -1
  140. package/lib/typescript/components/screens/ComposeScreen.d.ts +3 -1
  141. package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
  142. package/lib/typescript/components/screens/HomeScreen.d.ts +8 -2
  143. package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
  144. package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
  145. package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
  146. package/lib/typescript/components/screens/ThreadScreen.d.ts +3 -1
  147. package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
  148. package/lib/typescript/i18n/index.d.ts +15 -0
  149. package/lib/typescript/i18n/index.d.ts.map +1 -0
  150. package/lib/typescript/i18n/languages.d.ts +36 -0
  151. package/lib/typescript/i18n/languages.d.ts.map +1 -0
  152. package/lib/typescript/i18n/strings/de.d.ts +3 -0
  153. package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
  154. package/lib/typescript/i18n/strings/en.d.ts +83 -0
  155. package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
  156. package/lib/typescript/i18n/strings/es.d.ts +3 -0
  157. package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
  158. package/lib/typescript/i18n/strings/fr.d.ts +3 -0
  159. package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
  160. package/lib/typescript/i18n/strings/hi.d.ts +3 -0
  161. package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
  162. package/lib/typescript/i18n/strings/it.d.ts +3 -0
  163. package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
  164. package/lib/typescript/i18n/strings/ja.d.ts +3 -0
  165. package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
  166. package/lib/typescript/i18n/strings/ko.d.ts +3 -0
  167. package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
  168. package/lib/typescript/i18n/strings/nl.d.ts +3 -0
  169. package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
  170. package/lib/typescript/i18n/strings/pl.d.ts +3 -0
  171. package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
  172. package/lib/typescript/i18n/strings/pt.d.ts +3 -0
  173. package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
  174. package/lib/typescript/i18n/strings/ru.d.ts +3 -0
  175. package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
  176. package/lib/typescript/i18n/strings/tr.d.ts +3 -0
  177. package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
  178. package/lib/typescript/i18n/strings/zh.d.ts +3 -0
  179. package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
  180. package/lib/typescript/index.d.ts +2 -1
  181. package/lib/typescript/index.d.ts.map +1 -1
  182. package/lib/typescript/theme.d.ts +44 -3
  183. package/lib/typescript/theme.d.ts.map +1 -1
  184. package/lib/typescript/types.d.ts +54 -2
  185. package/lib/typescript/types.d.ts.map +1 -1
  186. package/lib/typescript/unread.d.ts +22 -0
  187. package/lib/typescript/unread.d.ts.map +1 -0
  188. package/lib/typescript/useSupportThreads.d.ts +38 -0
  189. package/lib/typescript/useSupportThreads.d.ts.map +1 -0
  190. package/lib/typescript/utils.d.ts +8 -2
  191. package/lib/typescript/utils.d.ts.map +1 -1
  192. package/package.json +3 -3
  193. package/src/api.ts +24 -1
  194. package/src/components/BottomSheet.tsx +61 -43
  195. package/src/components/LauncherButton.tsx +217 -0
  196. package/src/components/SupportButton.tsx +195 -210
  197. package/src/components/icons.tsx +113 -19
  198. package/src/components/primitives.tsx +230 -39
  199. package/src/components/screens/ComposeScreen.tsx +129 -63
  200. package/src/components/screens/HomeScreen.tsx +230 -120
  201. package/src/components/screens/LanguageScreen.tsx +172 -0
  202. package/src/components/screens/ThreadScreen.tsx +319 -122
  203. package/src/i18n/index.ts +81 -0
  204. package/src/i18n/languages.ts +106 -0
  205. package/src/i18n/strings/de.ts +78 -0
  206. package/src/i18n/strings/en.ts +94 -0
  207. package/src/i18n/strings/es.ts +77 -0
  208. package/src/i18n/strings/fr.ts +78 -0
  209. package/src/i18n/strings/hi.ts +77 -0
  210. package/src/i18n/strings/it.ts +77 -0
  211. package/src/i18n/strings/ja.ts +77 -0
  212. package/src/i18n/strings/ko.ts +76 -0
  213. package/src/i18n/strings/nl.ts +77 -0
  214. package/src/i18n/strings/pl.ts +77 -0
  215. package/src/i18n/strings/pt.ts +77 -0
  216. package/src/i18n/strings/ru.ts +77 -0
  217. package/src/i18n/strings/tr.ts +77 -0
  218. package/src/i18n/strings/zh.ts +75 -0
  219. package/src/index.tsx +9 -0
  220. package/src/theme.ts +165 -18
  221. package/src/types.ts +56 -2
  222. package/src/unread.ts +91 -0
  223. package/src/useSupportThreads.ts +392 -0
  224. package/src/utils.ts +48 -10
@@ -1,84 +1,146 @@
1
1
  "use strict";
2
2
 
3
- import { ScrollView, Text, View } from 'react-native';
4
- import { QUERY_TYPE_LABEL } from '../../types';
3
+ import { RefreshControl, ScrollView, Text, View } from 'react-native';
4
+ import { LANGUAGE_LABELS } from '../../i18n/languages';
5
5
  import { relativeTime } from '../../utils';
6
- import { Chevron, CloseIcon } from '../icons';
7
- import { EmptyState, ErrorState, PressableRow, SkeletonBlock, textStyles, typeColor, typeIcon } from '../primitives';
6
+ import { Chevron, CloseIcon, GlobeIcon } from '../icons';
7
+ import { EmptyState, ErrorState, IconButton, PressableRow, SectionLabel, SkeletonBlock, textStyles, TypeGlyph, UnreadPill } from '../primitives';
8
8
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
9
  const COMPOSE_TYPES = ['feedback', 'feature_request', 'bug_report'];
10
10
  function ThreadRow({
11
11
  thread,
12
12
  theme,
13
- onPress
13
+ strings,
14
+ onPress,
15
+ last
14
16
  }) {
15
- const preview = thread.last_message?.body ?? '';
17
+ const unread = thread.unread_count > 0;
18
+ const type = strings.t(`type.${thread.type}`);
19
+ const preview = thread.last_message?.body ?? strings.t('home.noMessages');
20
+ const at = thread.last_message?.created_at ?? thread.created_at;
16
21
  return /*#__PURE__*/_jsxs(PressableRow, {
17
22
  onPress: onPress,
18
23
  theme: theme,
19
- accessibilityLabel: `${QUERY_TYPE_LABEL[thread.type]} thread`,
24
+ accessibilityLabel: unread ? strings.t('home.threadUnreadA11y', {
25
+ type,
26
+ count: thread.unread_count
27
+ }) : strings.t('home.threadA11y', {
28
+ type
29
+ }),
20
30
  style: {
31
+ flexDirection: 'row',
32
+ alignItems: 'center',
33
+ gap: 12,
21
34
  paddingHorizontal: 16,
22
- paddingVertical: 10,
23
- borderBottomWidth: 1,
24
- borderBottomColor: theme.colors.border
35
+ paddingVertical: 13,
36
+ borderBottomWidth: last ? 0 : 1,
37
+ borderBottomColor: theme.colors.border,
38
+ opacity: thread.status === 'resolved' ? 0.75 : 1
25
39
  },
26
- children: [/*#__PURE__*/_jsxs(View, {
40
+ children: [/*#__PURE__*/_jsx(TypeGlyph, {
41
+ type: thread.type,
42
+ theme: theme,
43
+ size: 38
44
+ }), /*#__PURE__*/_jsxs(View, {
27
45
  style: {
28
- flexDirection: 'row',
29
- alignItems: 'center',
30
- gap: 8
46
+ flex: 1,
47
+ gap: 3
31
48
  },
32
- children: [thread.unread_count > 0 && /*#__PURE__*/_jsx(View, {
49
+ children: [/*#__PURE__*/_jsxs(View, {
33
50
  style: {
34
- width: 6,
35
- height: 6,
36
- borderRadius: 3,
37
- backgroundColor: theme.colors.accent
38
- }
39
- }), /*#__PURE__*/_jsx(Text, {
51
+ flexDirection: 'row',
52
+ alignItems: 'center',
53
+ gap: 8
54
+ },
55
+ children: [/*#__PURE__*/_jsx(Text, {
56
+ numberOfLines: 1,
57
+ style: {
58
+ flex: 1,
59
+ fontSize: 14,
60
+ fontWeight: unread ? '700' : '600',
61
+ letterSpacing: -0.1,
62
+ color: theme.colors.textPrimary
63
+ },
64
+ children: type
65
+ }), /*#__PURE__*/_jsx(Text, {
66
+ style: textStyles.meta(theme),
67
+ children: relativeTime(at, strings)
68
+ })]
69
+ }), /*#__PURE__*/_jsxs(View, {
40
70
  style: {
41
- fontSize: 11,
42
- fontWeight: '500',
43
- color: typeColor(thread.type, theme)
71
+ flexDirection: 'row',
72
+ alignItems: 'center',
73
+ gap: 8
44
74
  },
45
- children: QUERY_TYPE_LABEL[thread.type]
46
- }), /*#__PURE__*/_jsx(Text, {
47
- style: [textStyles.meta(theme), {
48
- marginLeft: 'auto'
49
- }],
50
- children: thread.last_message ? relativeTime(thread.last_message.created_at) : relativeTime(thread.created_at)
75
+ children: [/*#__PURE__*/_jsxs(Text, {
76
+ numberOfLines: 1,
77
+ style: {
78
+ flex: 1,
79
+ fontSize: 13,
80
+ lineHeight: 18,
81
+ color: unread ? theme.colors.textPrimary : theme.colors.textSecondary
82
+ },
83
+ children: [thread.last_message?.sender === 'user' ? `${strings.t('home.you')}: ` : '', preview]
84
+ }), unread ? /*#__PURE__*/_jsx(UnreadPill, {
85
+ count: thread.unread_count,
86
+ theme: theme
87
+ }) : /*#__PURE__*/_jsx(Chevron, {
88
+ color: theme.colors.textTertiary
89
+ })]
51
90
  })]
52
- }), /*#__PURE__*/_jsxs(View, {
91
+ })]
92
+ });
93
+ }
94
+ function ThreadGroup({
95
+ label,
96
+ threads,
97
+ theme,
98
+ strings,
99
+ onOpenThread
100
+ }) {
101
+ if (threads.length === 0) return null;
102
+ return /*#__PURE__*/_jsxs(View, {
103
+ style: {
104
+ marginTop: 24
105
+ },
106
+ children: [/*#__PURE__*/_jsx(SectionLabel, {
107
+ theme: theme,
53
108
  style: {
54
- flexDirection: 'row',
55
- alignItems: 'center',
56
- gap: 8,
57
- marginTop: 3
109
+ paddingHorizontal: 16,
110
+ paddingBottom: 8
58
111
  },
59
- children: [/*#__PURE__*/_jsx(Text, {
60
- numberOfLines: 1,
61
- style: {
62
- flex: 1,
63
- fontSize: 13,
64
- color: thread.unread_count > 0 ? theme.colors.textPrimary : theme.colors.textSecondary,
65
- fontWeight: thread.unread_count > 0 ? '500' : '400'
66
- },
67
- children: preview
68
- }), /*#__PURE__*/_jsx(Chevron, {
69
- color: theme.colors.textTertiary
70
- })]
112
+ children: label
113
+ }), /*#__PURE__*/_jsx(View, {
114
+ style: {
115
+ marginHorizontal: 16,
116
+ borderWidth: 1,
117
+ borderColor: theme.colors.border,
118
+ borderRadius: theme.radii.card,
119
+ backgroundColor: theme.colors.surface,
120
+ overflow: 'hidden'
121
+ },
122
+ children: threads.map((thread, i) => /*#__PURE__*/_jsx(ThreadRow, {
123
+ thread: thread,
124
+ theme: theme,
125
+ strings: strings,
126
+ onPress: () => onOpenThread(thread),
127
+ last: i === threads.length - 1
128
+ }, thread.id))
71
129
  })]
72
130
  });
73
131
  }
74
132
  export function HomeScreen({
75
133
  theme,
134
+ strings,
135
+ language,
76
136
  threads,
77
137
  loading,
138
+ refreshing,
78
139
  error,
79
- onRetry,
140
+ onRefresh,
80
141
  onCompose,
81
142
  onOpenThread,
143
+ onChangeLanguage,
82
144
  onClose
83
145
  }) {
84
146
  const open = (threads ?? []).filter(t => t.status === 'open');
@@ -90,31 +152,48 @@ export function HomeScreen({
90
152
  children: [/*#__PURE__*/_jsxs(View, {
91
153
  style: {
92
154
  flexDirection: 'row',
93
- alignItems: 'center',
155
+ alignItems: 'flex-start',
94
156
  paddingHorizontal: 16,
95
- paddingBottom: 12
157
+ paddingTop: 4,
158
+ paddingBottom: 16
96
159
  },
97
- children: [/*#__PURE__*/_jsx(Text, {
98
- style: textStyles.title(theme),
99
- children: "Support"
100
- }), /*#__PURE__*/_jsx(PressableRow, {
101
- onPress: onClose,
102
- theme: theme,
103
- accessibilityLabel: "Close",
160
+ children: [/*#__PURE__*/_jsxs(View, {
104
161
  style: {
105
- marginLeft: 'auto',
106
- padding: 6,
107
- borderRadius: theme.radii.control
162
+ flex: 1,
163
+ gap: 2
108
164
  },
165
+ children: [/*#__PURE__*/_jsx(Text, {
166
+ style: textStyles.title(theme),
167
+ children: strings.t('home.title')
168
+ }), /*#__PURE__*/_jsx(Text, {
169
+ style: textStyles.secondary(theme),
170
+ children: strings.t('home.subtitle')
171
+ })]
172
+ }), /*#__PURE__*/_jsx(IconButton, {
173
+ onPress: onClose,
174
+ theme: theme,
175
+ accessibilityLabel: strings.t('home.close'),
176
+ size: 32,
109
177
  children: /*#__PURE__*/_jsx(CloseIcon, {
110
178
  color: theme.colors.textSecondary,
111
- size: 13
179
+ size: 12
112
180
  })
113
181
  })]
114
182
  }), /*#__PURE__*/_jsxs(ScrollView, {
115
183
  style: {
116
184
  flex: 1
117
185
  },
186
+ contentContainerStyle: {
187
+ paddingBottom: 24
188
+ },
189
+ keyboardShouldPersistTaps: "handled",
190
+ refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
191
+ refreshing: refreshing,
192
+ onRefresh: onRefresh,
193
+ tintColor: theme.colors.textTertiary,
194
+ colors: [theme.colors.accent],
195
+ progressBackgroundColor: theme.colors.surface
196
+ }),
118
197
  children: [/*#__PURE__*/_jsx(View, {
119
198
  style: {
120
199
  marginHorizontal: 16,
@@ -127,98 +206,122 @@ export function HomeScreen({
127
206
  children: COMPOSE_TYPES.map((type, i) => /*#__PURE__*/_jsxs(PressableRow, {
128
207
  onPress: () => onCompose(type),
129
208
  theme: theme,
130
- accessibilityLabel: `New ${QUERY_TYPE_LABEL[type].toLowerCase()}`,
209
+ accessibilityLabel: strings.t('home.newA11y', {
210
+ type: strings.t(`type.${type}`)
211
+ }),
131
212
  style: {
132
213
  flexDirection: 'row',
133
214
  alignItems: 'center',
134
- gap: 10,
215
+ gap: 12,
135
216
  paddingHorizontal: 14,
136
217
  paddingVertical: 12,
137
218
  borderTopWidth: i === 0 ? 0 : 1,
138
219
  borderTopColor: theme.colors.border
139
220
  },
140
- children: [typeIcon(type, typeColor(type, theme)), /*#__PURE__*/_jsx(Text, {
221
+ children: [/*#__PURE__*/_jsx(TypeGlyph, {
222
+ type: type,
223
+ theme: theme,
224
+ size: 34
225
+ }), /*#__PURE__*/_jsxs(View, {
141
226
  style: {
142
- fontSize: 14,
143
- color: theme.colors.textPrimary,
144
- flex: 1
227
+ flex: 1,
228
+ gap: 1
145
229
  },
146
- children: QUERY_TYPE_LABEL[type]
230
+ children: [/*#__PURE__*/_jsx(Text, {
231
+ style: textStyles.heading(theme),
232
+ children: strings.t(`type.${type}`)
233
+ }), /*#__PURE__*/_jsx(Text, {
234
+ style: textStyles.meta(theme),
235
+ children: strings.t(`hint.${type}`)
236
+ })]
147
237
  }), /*#__PURE__*/_jsx(Chevron, {
148
238
  color: theme.colors.textTertiary
149
239
  })]
150
240
  }, type))
151
- }), error && threads === null ?
241
+ }), /*#__PURE__*/_jsx(View, {
242
+ style: {
243
+ marginTop: 12,
244
+ marginHorizontal: 16,
245
+ borderWidth: 1,
246
+ borderColor: theme.colors.border,
247
+ borderRadius: theme.radii.card,
248
+ backgroundColor: theme.colors.surface,
249
+ overflow: 'hidden'
250
+ },
251
+ children: /*#__PURE__*/_jsxs(PressableRow, {
252
+ onPress: onChangeLanguage,
253
+ theme: theme,
254
+ accessibilityLabel: strings.t('lang.change'),
255
+ style: {
256
+ flexDirection: 'row',
257
+ alignItems: 'center',
258
+ gap: 12,
259
+ paddingHorizontal: 14,
260
+ paddingVertical: 11
261
+ },
262
+ children: [/*#__PURE__*/_jsx(GlobeIcon, {
263
+ color: theme.colors.textTertiary,
264
+ size: 16
265
+ }), /*#__PURE__*/_jsx(Text, {
266
+ style: [textStyles.secondary(theme), {
267
+ flex: 1
268
+ }],
269
+ children: strings.t('home.language')
270
+ }), /*#__PURE__*/_jsx(Text, {
271
+ style: textStyles.meta(theme),
272
+ children: LANGUAGE_LABELS[language]
273
+ }), /*#__PURE__*/_jsx(Chevron, {
274
+ color: theme.colors.textTertiary
275
+ })]
276
+ })
277
+ }), error !== null && threads === null ?
152
278
  /*#__PURE__*/
153
279
  // Only take over the screen when there's nothing cached to show —
154
280
  // a failed background poll shouldn't hide an already-loaded list.
155
281
  _jsx(ErrorState, {
156
282
  message: error,
157
- onRetry: onRetry,
158
- theme: theme
283
+ onRetry: onRefresh,
284
+ theme: theme,
285
+ strings: strings
159
286
  }) : loading && threads === null ? /*#__PURE__*/_jsxs(View, {
160
287
  style: {
161
288
  paddingHorizontal: 16,
162
- paddingTop: 24,
163
- gap: 14
289
+ paddingTop: 28,
290
+ gap: 12
164
291
  },
165
292
  children: [/*#__PURE__*/_jsx(SkeletonBlock, {
166
- width: 80,
167
- height: 12,
168
- theme: theme
293
+ width: 110,
294
+ height: 11,
295
+ theme: theme,
296
+ radius: 4
169
297
  }), /*#__PURE__*/_jsx(SkeletonBlock, {
170
298
  width: "100%",
171
- height: 40,
172
- theme: theme
299
+ height: 64,
300
+ theme: theme,
301
+ radius: theme.radii.card
173
302
  }), /*#__PURE__*/_jsx(SkeletonBlock, {
174
303
  width: "100%",
175
- height: 40,
176
- theme: theme
304
+ height: 64,
305
+ theme: theme,
306
+ radius: theme.radii.card
177
307
  })]
178
308
  }) : (threads ?? []).length === 0 ? /*#__PURE__*/_jsx(EmptyState, {
179
- message: "No queries yet",
309
+ message: strings.t('home.empty'),
310
+ hint: strings.t('home.emptyHint'),
180
311
  theme: theme
181
312
  }) : /*#__PURE__*/_jsxs(_Fragment, {
182
- children: [open.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
183
- children: [/*#__PURE__*/_jsx(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__*/_jsx(ThreadRow, {
196
- thread: t,
197
- theme: theme,
198
- onPress: () => onOpenThread(t)
199
- }, t.id))]
200
- }), resolved.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
201
- children: [/*#__PURE__*/_jsx(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__*/_jsx(ThreadRow, {
214
- thread: t,
215
- theme: theme,
216
- onPress: () => onOpenThread(t)
217
- }, t.id))]
218
- }), /*#__PURE__*/_jsx(View, {
219
- style: {
220
- height: 16
221
- }
313
+ children: [/*#__PURE__*/_jsx(ThreadGroup, {
314
+ label: `${strings.t('home.open')} · ${open.length}`,
315
+ threads: open,
316
+ theme: theme,
317
+ strings: strings,
318
+ onOpenThread: onOpenThread
319
+ }), /*#__PURE__*/_jsx(ThreadGroup, {
320
+ label: strings.t('home.resolved'),
321
+ threads: resolved,
322
+ theme: theme,
323
+ strings: strings,
324
+ onOpenThread: onOpenThread
222
325
  })]
223
326
  })]
224
327
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["ScrollView","Text","View","QUERY_TYPE_LABEL","relativeTime","Chevron","CloseIcon","EmptyState","ErrorState","PressableRow","SkeletonBlock","textStyles","typeColor","typeIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","COMPOSE_TYPES","ThreadRow","thread","theme","onPress","preview","last_message","body","accessibilityLabel","type","style","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","colors","border","children","flexDirection","alignItems","gap","unread_count","width","height","borderRadius","backgroundColor","accent","fontSize","fontWeight","color","meta","marginLeft","created_at","marginTop","numberOfLines","flex","textPrimary","textSecondary","textTertiary","HomeScreen","threads","loading","error","onRetry","onCompose","onOpenThread","onClose","open","filter","t","status","resolved","paddingBottom","title","padding","radii","control","size","marginHorizontal","borderWidth","borderColor","card","surface","overflow","map","i","toLowerCase","borderTopWidth","borderTopColor","message","paddingTop","length","textTransform","letterSpacing","id"],"sourceRoot":"../../../../src","sources":["components/screens/HomeScreen.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAGrD,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,OAAO,EAAEC,SAAS,QAAQ,UAAU;AAC7C,SACEC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,QAAQ,QACH,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEvB,MAAMC,aAA0B,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC;AAEhF,SAASC,SAASA,CAAC;EACjBC,MAAM;EACNC,KAAK;EACLC;AAKF,CAAC,EAAE;EACD,MAAMC,OAAO,GAAGH,MAAM,CAACI,YAAY,EAAEC,IAAI,IAAI,EAAE;EAC/C,oBACEV,KAAA,CAACR,YAAY;IACXe,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACbK,kBAAkB,EAAE,GAAGzB,gBAAgB,CAACmB,MAAM,CAACO,IAAI,CAAC,SAAU;IAC9DC,KAAK,EAAE;MACLC,iBAAiB,EAAE,EAAE;MACrBC,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEX,KAAK,CAACY,MAAM,CAACC;IAClC,CAAE;IAAAC,QAAA,gBAEFpB,KAAA,CAACf,IAAI;MAAC4B,KAAK,EAAE;QAAEQ,aAAa,EAAE,KAAK;QAAEC,UAAU,EAAE,QAAQ;QAAEC,GAAG,EAAE;MAAE,CAAE;MAAAH,QAAA,GACjEf,MAAM,CAACmB,YAAY,GAAG,CAAC,iBACtB1B,IAAA,CAACb,IAAI;QACH4B,KAAK,EAAE;UACLY,KAAK,EAAE,CAAC;UACRC,MAAM,EAAE,CAAC;UACTC,YAAY,EAAE,CAAC;UACfC,eAAe,EAAEtB,KAAK,CAACY,MAAM,CAACW;QAChC;MAAE,CACH,CACF,eACD/B,IAAA,CAACd,IAAI;QAAC6B,KAAK,EAAE;UAAEiB,QAAQ,EAAE,EAAE;UAAEC,UAAU,EAAE,KAAK;UAAEC,KAAK,EAAErC,SAAS,CAACU,MAAM,CAACO,IAAI,EAAEN,KAAK;QAAE,CAAE;QAAAc,QAAA,EACpFlC,gBAAgB,CAACmB,MAAM,CAACO,IAAI;MAAC,CAC1B,CAAC,eACPd,IAAA,CAACd,IAAI;QAAC6B,KAAK,EAAE,CAACnB,UAAU,CAACuC,IAAI,CAAC3B,KAAK,CAAC,EAAE;UAAE4B,UAAU,EAAE;QAAO,CAAC,CAAE;QAAAd,QAAA,EAC3Df,MAAM,CAACI,YAAY,GAChBtB,YAAY,CAACkB,MAAM,CAACI,YAAY,CAAC0B,UAAU,CAAC,GAC5ChD,YAAY,CAACkB,MAAM,CAAC8B,UAAU;MAAC,CAC/B,CAAC;IAAA,CACH,CAAC,eACPnC,KAAA,CAACf,IAAI;MAAC4B,KAAK,EAAE;QAAEQ,aAAa,EAAE,KAAK;QAAEC,UAAU,EAAE,QAAQ;QAAEC,GAAG,EAAE,CAAC;QAAEa,SAAS,EAAE;MAAE,CAAE;MAAAhB,QAAA,gBAChFtB,IAAA,CAACd,IAAI;QACHqD,aAAa,EAAE,CAAE;QACjBxB,KAAK,EAAE;UACLyB,IAAI,EAAE,CAAC;UACPR,QAAQ,EAAE,EAAE;UACZE,KAAK,EACH3B,MAAM,CAACmB,YAAY,GAAG,CAAC,GACnBlB,KAAK,CAACY,MAAM,CAACqB,WAAW,GACxBjC,KAAK,CAACY,MAAM,CAACsB,aAAa;UAChCT,UAAU,EAAE1B,MAAM,CAACmB,YAAY,GAAG,CAAC,GAAG,KAAK,GAAG;QAChD,CAAE;QAAAJ,QAAA,EAEDZ;MAAO,CACJ,CAAC,eACPV,IAAA,CAACV,OAAO;QAAC4C,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACuB;MAAa,CAAE,CAAC;IAAA,CACzC,CAAC;EAAA,CACK,CAAC;AAEnB;AAEA,OAAO,SAASC,UAAUA,CAAC;EACzBpC,KAAK;EACLqC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,OAAO;EACPC,SAAS;EACTC,YAAY;EACZC;AAUF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAG,CAACP,OAAO,IAAI,EAAE,EAAEQ,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,MAAM,CAAC;EAC/D,MAAMC,QAAQ,GAAG,CAACX,OAAO,IAAI,EAAE,EAAEQ,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,KAAK,UAAU,CAAC;EAEvE,oBACErD,KAAA,CAACf,IAAI;IAAC4B,KAAK,EAAE;MAAEyB,IAAI,EAAE;IAAE,CAAE;IAAAlB,QAAA,gBAEvBpB,KAAA,CAACf,IAAI;MACH4B,KAAK,EAAE;QACLQ,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,QAAQ;QACpBR,iBAAiB,EAAE,EAAE;QACrByC,aAAa,EAAE;MACjB,CAAE;MAAAnC,QAAA,gBAEFtB,IAAA,CAACd,IAAI;QAAC6B,KAAK,EAAEnB,UAAU,CAAC8D,KAAK,CAAClD,KAAK,CAAE;QAAAc,QAAA,EAAC;MAAO,CAAM,CAAC,eACpDtB,IAAA,CAACN,YAAY;QACXe,OAAO,EAAE0C,OAAQ;QACjB3C,KAAK,EAAEA,KAAM;QACbK,kBAAkB,EAAC,OAAO;QAC1BE,KAAK,EAAE;UAAEqB,UAAU,EAAE,MAAM;UAAEuB,OAAO,EAAE,CAAC;UAAE9B,YAAY,EAAErB,KAAK,CAACoD,KAAK,CAACC;QAAQ,CAAE;QAAAvC,QAAA,eAE7EtB,IAAA,CAACT,SAAS;UAAC2C,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACsB,aAAc;UAACoB,IAAI,EAAE;QAAG,CAAE;MAAC,CAC9C,CAAC;IAAA,CACX,CAAC,eAEP5D,KAAA,CAACjB,UAAU;MAAC8B,KAAK,EAAE;QAAEyB,IAAI,EAAE;MAAE,CAAE;MAAAlB,QAAA,gBAE7BtB,IAAA,CAACb,IAAI;QACH4B,KAAK,EAAE;UACLgD,gBAAgB,EAAE,EAAE;UACpBC,WAAW,EAAE,CAAC;UACdC,WAAW,EAAEzD,KAAK,CAACY,MAAM,CAACC,MAAM;UAChCQ,YAAY,EAAErB,KAAK,CAACoD,KAAK,CAACM,IAAI;UAC9BpC,eAAe,EAAEtB,KAAK,CAACY,MAAM,CAAC+C,OAAO;UACrCC,QAAQ,EAAE;QACZ,CAAE;QAAA9C,QAAA,EAEDjB,aAAa,CAACgE,GAAG,CAAC,CAACvD,IAAI,EAAEwD,CAAC,kBACzBpE,KAAA,CAACR,YAAY;UAEXe,OAAO,EAAEA,CAAA,KAAMwC,SAAS,CAACnC,IAAI,CAAE;UAC/BN,KAAK,EAAEA,KAAM;UACbK,kBAAkB,EAAE,OAAOzB,gBAAgB,CAAC0B,IAAI,CAAC,CAACyD,WAAW,CAAC,CAAC,EAAG;UAClExD,KAAK,EAAE;YACLQ,aAAa,EAAE,KAAK;YACpBC,UAAU,EAAE,QAAQ;YACpBC,GAAG,EAAE,EAAE;YACPT,iBAAiB,EAAE,EAAE;YACrBC,eAAe,EAAE,EAAE;YACnBuD,cAAc,EAAEF,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAC/BG,cAAc,EAAEjE,KAAK,CAACY,MAAM,CAACC;UAC/B,CAAE;UAAAC,QAAA,GAEDxB,QAAQ,CAACgB,IAAI,EAAEjB,SAAS,CAACiB,IAAI,EAAEN,KAAK,CAAC,CAAC,eACvCR,IAAA,CAACd,IAAI;YAAC6B,KAAK,EAAE;cAAEiB,QAAQ,EAAE,EAAE;cAAEE,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACqB,WAAW;cAAED,IAAI,EAAE;YAAE,CAAE;YAAAlB,QAAA,EACrElC,gBAAgB,CAAC0B,IAAI;UAAC,CACnB,CAAC,eACPd,IAAA,CAACV,OAAO;YAAC4C,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACuB;UAAa,CAAE,CAAC;QAAA,GAlBxC7B,IAmBO,CACf;MAAC,CACE,CAAC,EAGNiC,KAAK,IAAIF,OAAO,KAAK,IAAI;MAAA;MACxB;MACA;MACA7C,IAAA,CAACP,UAAU;QAACiF,OAAO,EAAE3B,KAAM;QAACC,OAAO,EAAEA,OAAQ;QAACxC,KAAK,EAAEA;MAAM,CAAE,CAAC,GAC5DsC,OAAO,IAAID,OAAO,KAAK,IAAI,gBAC7B3C,KAAA,CAACf,IAAI;QAAC4B,KAAK,EAAE;UAAEC,iBAAiB,EAAE,EAAE;UAAE2D,UAAU,EAAE,EAAE;UAAElD,GAAG,EAAE;QAAG,CAAE;QAAAH,QAAA,gBAC9DtB,IAAA,CAACL,aAAa;UAACgC,KAAK,EAAE,EAAG;UAACC,MAAM,EAAE,EAAG;UAACpB,KAAK,EAAEA;QAAM,CAAE,CAAC,eACtDR,IAAA,CAACL,aAAa;UAACgC,KAAK,EAAC,MAAM;UAACC,MAAM,EAAE,EAAG;UAACpB,KAAK,EAAEA;QAAM,CAAE,CAAC,eACxDR,IAAA,CAACL,aAAa;UAACgC,KAAK,EAAC,MAAM;UAACC,MAAM,EAAE,EAAG;UAACpB,KAAK,EAAEA;QAAM,CAAE,CAAC;MAAA,CACpD,CAAC,GACL,CAACqC,OAAO,IAAI,EAAE,EAAE+B,MAAM,KAAK,CAAC,gBAC9B5E,IAAA,CAACR,UAAU;QAACkF,OAAO,EAAC,gBAAgB;QAAClE,KAAK,EAAEA;MAAM,CAAE,CAAC,gBAErDN,KAAA,CAAAE,SAAA;QAAAkB,QAAA,GACG8B,IAAI,CAACwB,MAAM,GAAG,CAAC,iBACd1E,KAAA,CAAAE,SAAA;UAAAkB,QAAA,gBACEtB,IAAA,CAACd,IAAI;YACH6B,KAAK,EAAE;cACLiB,QAAQ,EAAE,EAAE;cACZC,UAAU,EAAE,KAAK;cACjB4C,aAAa,EAAE,WAAW;cAC1BC,aAAa,EAAE,GAAG;cAClB5C,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACuB,YAAY;cAChC3B,iBAAiB,EAAE,EAAE;cACrB2D,UAAU,EAAE,EAAE;cACdlB,aAAa,EAAE;YACjB,CAAE;YAAAnC,QAAA,EACH;UAED,CAAM,CAAC,EACN8B,IAAI,CAACiB,GAAG,CAAEf,CAAC,iBACVtD,IAAA,CAACM,SAAS;YAERC,MAAM,EAAE+C,CAAE;YACV9C,KAAK,EAAEA,KAAM;YACbC,OAAO,EAAEA,CAAA,KAAMyC,YAAY,CAACI,CAAC;UAAE,GAH1BA,CAAC,CAACyB,EAIR,CACF,CAAC;QAAA,CACF,CACH,EACAvB,QAAQ,CAACoB,MAAM,GAAG,CAAC,iBAClB1E,KAAA,CAAAE,SAAA;UAAAkB,QAAA,gBACEtB,IAAA,CAACd,IAAI;YACH6B,KAAK,EAAE;cACLiB,QAAQ,EAAE,EAAE;cACZC,UAAU,EAAE,KAAK;cACjB4C,aAAa,EAAE,WAAW;cAC1BC,aAAa,EAAE,GAAG;cAClB5C,KAAK,EAAE1B,KAAK,CAACY,MAAM,CAACuB,YAAY;cAChC3B,iBAAiB,EAAE,EAAE;cACrB2D,UAAU,EAAE,EAAE;cACdlB,aAAa,EAAE;YACjB,CAAE;YAAAnC,QAAA,EACH;UAED,CAAM,CAAC,EACNkC,QAAQ,CAACa,GAAG,CAAEf,CAAC,iBACdtD,IAAA,CAACM,SAAS;YAERC,MAAM,EAAE+C,CAAE;YACV9C,KAAK,EAAEA,KAAM;YACbC,OAAO,EAAEA,CAAA,KAAMyC,YAAY,CAACI,CAAC;UAAE,GAH1BA,CAAC,CAACyB,EAIR,CACF,CAAC;QAAA,CACF,CACH,eACD/E,IAAA,CAACb,IAAI;UAAC4B,KAAK,EAAE;YAAEa,MAAM,EAAE;UAAG;QAAE,CAAE,CAAC;MAAA,CAC/B,CACH;IAAA,CACS,CAAC;EAAA,CACT,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["RefreshControl","ScrollView","Text","View","LANGUAGE_LABELS","relativeTime","Chevron","CloseIcon","GlobeIcon","EmptyState","ErrorState","IconButton","PressableRow","SectionLabel","SkeletonBlock","textStyles","TypeGlyph","UnreadPill","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","COMPOSE_TYPES","ThreadRow","thread","theme","strings","onPress","last","unread","unread_count","type","t","preview","last_message","body","at","created_at","accessibilityLabel","count","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","textTertiary","ThreadGroup","label","threads","onOpenThread","length","marginTop","paddingBottom","marginHorizontal","borderWidth","borderColor","borderRadius","radii","card","backgroundColor","surface","overflow","map","i","id","HomeScreen","language","loading","refreshing","error","onRefresh","onCompose","onChangeLanguage","onClose","open","filter","resolved","paddingTop","title","secondary","contentContainerStyle","keyboardShouldPersistTaps","refreshControl","tintColor","accent","progressBackgroundColor","borderTopWidth","borderTopColor","heading","message","onRetry","width","height","radius","hint"],"sourceRoot":"../../../../src","sources":["components/screens/HomeScreen.tsx"],"mappings":";;AAAA,SAASA,cAAc,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAErE,SAASC,eAAe,QAAuB,sBAAsB;AAGrE,SAASC,YAAY,QAAQ,aAAa;AAC1C,SAASC,OAAO,EAAEC,SAAS,EAAEC,SAAS,QAAQ,UAAU;AACxD,SACEC,UAAU,EACVC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,UAAU,QACL,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEvB,MAAMC,aAA0B,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC;AAEhF,SAASC,SAASA,CAAC;EACjBC,MAAM;EACNC,KAAK;EACLC,OAAO;EACPC,OAAO;EACPC;AAOF,CAAC,EAAE;EACD,MAAMC,MAAM,GAAGL,MAAM,CAACM,YAAY,GAAG,CAAC;EACtC,MAAMC,IAAI,GAAGL,OAAO,CAACM,CAAC,CAAC,QAAQR,MAAM,CAACO,IAAI,EAAE,CAAC;EAC7C,MAAME,OAAO,GAAGT,MAAM,CAACU,YAAY,EAAEC,IAAI,IAAIT,OAAO,CAACM,CAAC,CAAC,iBAAiB,CAAC;EACzE,MAAMI,EAAE,GAAGZ,MAAM,CAACU,YAAY,EAAEG,UAAU,IAAIb,MAAM,CAACa,UAAU;EAE/D,oBACElB,KAAA,CAACT,YAAY;IACXiB,OAAO,EAAEA,OAAQ;IACjBF,KAAK,EAAEA,KAAM;IACba,kBAAkB,EAChBT,MAAM,GACFH,OAAO,CAACM,CAAC,CAAC,uBAAuB,EAAE;MACjCD,IAAI;MACJQ,KAAK,EAAEf,MAAM,CAACM;IAChB,CAAC,CAAC,GACFJ,OAAO,CAACM,CAAC,CAAC,iBAAiB,EAAE;MAAED;IAAK,CAAC,CAC1C;IACDS,KAAK,EAAE;MACLC,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBC,GAAG,EAAE,EAAE;MACPC,iBAAiB,EAAE,EAAE;MACrBC,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAElB,IAAI,GAAG,CAAC,GAAG,CAAC;MAC/BmB,iBAAiB,EAAEtB,KAAK,CAACuB,MAAM,CAACC,MAAM;MACtCC,OAAO,EAAE1B,MAAM,CAAC2B,MAAM,KAAK,UAAU,GAAG,IAAI,GAAG;IACjD,CAAE;IAAAC,QAAA,gBAEFnC,IAAA,CAACH,SAAS;MAACiB,IAAI,EAAEP,MAAM,CAACO,IAAK;MAACN,KAAK,EAAEA,KAAM;MAAC4B,IAAI,EAAE;IAAG,CAAE,CAAC,eAExDlC,KAAA,CAAClB,IAAI;MAACuC,KAAK,EAAE;QAAEc,IAAI,EAAE,CAAC;QAAEX,GAAG,EAAE;MAAE,CAAE;MAAAS,QAAA,gBAC/BjC,KAAA,CAAClB,IAAI;QAACuC,KAAK,EAAE;UAAEC,aAAa,EAAE,KAAK;UAAEC,UAAU,EAAE,QAAQ;UAAEC,GAAG,EAAE;QAAE,CAAE;QAAAS,QAAA,gBAClEnC,IAAA,CAACjB,IAAI;UACHuD,aAAa,EAAE,CAAE;UACjBf,KAAK,EAAE;YACLc,IAAI,EAAE,CAAC;YACPE,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE5B,MAAM,GAAG,KAAK,GAAG,KAAK;YAClC6B,aAAa,EAAE,CAAC,GAAG;YACnBC,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACY;UACtB,CAAE;UAAAR,QAAA,EAEDrB;QAAI,CACD,CAAC,eACPd,IAAA,CAACjB,IAAI;UAACwC,KAAK,EAAE3B,UAAU,CAACgD,IAAI,CAACpC,KAAK,CAAE;UAAA2B,QAAA,EAAEjD,YAAY,CAACiC,EAAE,EAAEV,OAAO;QAAC,CAAO,CAAC;MAAA,CACnE,CAAC,eAEPP,KAAA,CAAClB,IAAI;QAACuC,KAAK,EAAE;UAAEC,aAAa,EAAE,KAAK;UAAEC,UAAU,EAAE,QAAQ;UAAEC,GAAG,EAAE;QAAE,CAAE;QAAAS,QAAA,gBAClEjC,KAAA,CAACnB,IAAI;UACHuD,aAAa,EAAE,CAAE;UACjBf,KAAK,EAAE;YACLc,IAAI,EAAE,CAAC;YACPE,QAAQ,EAAE,EAAE;YACZM,UAAU,EAAE,EAAE;YACdH,KAAK,EAAE9B,MAAM,GAAGJ,KAAK,CAACuB,MAAM,CAACY,WAAW,GAAGnC,KAAK,CAACuB,MAAM,CAACe;UAC1D,CAAE;UAAAX,QAAA,GAED5B,MAAM,CAACU,YAAY,EAAE8B,MAAM,KAAK,MAAM,GACnC,GAAGtC,OAAO,CAACM,CAAC,CAAC,UAAU,CAAC,IAAI,GAC5B,EAAE,EACLC,OAAO;QAAA,CACJ,CAAC,EACNJ,MAAM,gBACLZ,IAAA,CAACF,UAAU;UAACwB,KAAK,EAAEf,MAAM,CAACM,YAAa;UAACL,KAAK,EAAEA;QAAM,CAAE,CAAC,gBAExDR,IAAA,CAACb,OAAO;UAACuD,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACiB;QAAa,CAAE,CAC7C;MAAA,CACG,CAAC;IAAA,CACH,CAAC;EAAA,CACK,CAAC;AAEnB;AAEA,SAASC,WAAWA,CAAC;EACnBC,KAAK;EACLC,OAAO;EACP3C,KAAK;EACLC,OAAO;EACP2C;AAOF,CAAC,EAAE;EACD,IAAID,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EACrC,oBACEnD,KAAA,CAAClB,IAAI;IAACuC,KAAK,EAAE;MAAE+B,SAAS,EAAE;IAAG,CAAE;IAAAnB,QAAA,gBAC7BnC,IAAA,CAACN,YAAY;MAACc,KAAK,EAAEA,KAAM;MAACe,KAAK,EAAE;QAAEI,iBAAiB,EAAE,EAAE;QAAE4B,aAAa,EAAE;MAAE,CAAE;MAAApB,QAAA,EAC5Ee;IAAK,CACM,CAAC,eACflD,IAAA,CAAChB,IAAI;MACHuC,KAAK,EAAE;QACLiC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE,CAAC;QACdC,WAAW,EAAElD,KAAK,CAACuB,MAAM,CAACC,MAAM;QAChC2B,YAAY,EAAEnD,KAAK,CAACoD,KAAK,CAACC,IAAI;QAC9BC,eAAe,EAAEtD,KAAK,CAACuB,MAAM,CAACgC,OAAO;QACrCC,QAAQ,EAAE;MACZ,CAAE;MAAA7B,QAAA,EAEDgB,OAAO,CAACc,GAAG,CAAC,CAAC1D,MAAM,EAAE2D,CAAC,kBACrBlE,IAAA,CAACM,SAAS;QAERC,MAAM,EAAEA,MAAO;QACfC,KAAK,EAAEA,KAAM;QACbC,OAAO,EAAEA,OAAQ;QACjBC,OAAO,EAAEA,CAAA,KAAM0C,YAAY,CAAC7C,MAAM,CAAE;QACpCI,IAAI,EAAEuD,CAAC,KAAKf,OAAO,CAACE,MAAM,GAAG;MAAE,GAL1B9C,MAAM,CAAC4D,EAMb,CACF;IAAC,CACE,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,OAAO,SAASC,UAAUA,CAAC;EACzB5D,KAAK;EACLC,OAAO;EACP4D,QAAQ;EACRlB,OAAO;EACPmB,OAAO;EACPC,UAAU;EACVC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTtB,YAAY;EACZuB,gBAAgB;EAChBC;AAcF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAG,CAAC1B,OAAO,IAAI,EAAE,EAAE2B,MAAM,CAAE/D,CAAC,IAAKA,CAAC,CAACmB,MAAM,KAAK,MAAM,CAAC;EAC/D,MAAM6C,QAAQ,GAAG,CAAC5B,OAAO,IAAI,EAAE,EAAE2B,MAAM,CAAE/D,CAAC,IAAKA,CAAC,CAACmB,MAAM,KAAK,UAAU,CAAC;EAEvE,oBACEhC,KAAA,CAAClB,IAAI;IAACuC,KAAK,EAAE;MAAEc,IAAI,EAAE;IAAE,CAAE;IAAAF,QAAA,gBAEvBjC,KAAA,CAAClB,IAAI;MACHuC,KAAK,EAAE;QACLC,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,YAAY;QACxBE,iBAAiB,EAAE,EAAE;QACrBqD,UAAU,EAAE,CAAC;QACbzB,aAAa,EAAE;MACjB,CAAE;MAAApB,QAAA,gBAEFjC,KAAA,CAAClB,IAAI;QAACuC,KAAK,EAAE;UAAEc,IAAI,EAAE,CAAC;UAAEX,GAAG,EAAE;QAAE,CAAE;QAAAS,QAAA,gBAC/BnC,IAAA,CAACjB,IAAI;UAACwC,KAAK,EAAE3B,UAAU,CAACqF,KAAK,CAACzE,KAAK,CAAE;UAAA2B,QAAA,EAAE1B,OAAO,CAACM,CAAC,CAAC,YAAY;QAAC,CAAO,CAAC,eACtEf,IAAA,CAACjB,IAAI;UAACwC,KAAK,EAAE3B,UAAU,CAACsF,SAAS,CAAC1E,KAAK,CAAE;UAAA2B,QAAA,EACtC1B,OAAO,CAACM,CAAC,CAAC,eAAe;QAAC,CACvB,CAAC;MAAA,CACH,CAAC,eACPf,IAAA,CAACR,UAAU;QACTkB,OAAO,EAAEkE,OAAQ;QACjBpE,KAAK,EAAEA,KAAM;QACba,kBAAkB,EAAEZ,OAAO,CAACM,CAAC,CAAC,YAAY,CAAE;QAC5CqB,IAAI,EAAE,EAAG;QAAAD,QAAA,eAETnC,IAAA,CAACZ,SAAS;UAACsD,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACe,aAAc;UAACV,IAAI,EAAE;QAAG,CAAE;MAAC,CAChD,CAAC;IAAA,CACT,CAAC,eAEPlC,KAAA,CAACpB,UAAU;MACTyC,KAAK,EAAE;QAAEc,IAAI,EAAE;MAAE,CAAE;MACnB8C,qBAAqB,EAAE;QAAE5B,aAAa,EAAE;MAAG,CAAE;MAC7C6B,yBAAyB,EAAC,SAAS;MACnCC,cAAc,eACZrF,IAAA,CAACnB,cAAc;QACb0F,UAAU,EAAEA,UAAW;QACvBE,SAAS,EAAEA,SAAU;QACrBa,SAAS,EAAE9E,KAAK,CAACuB,MAAM,CAACiB,YAAa;QACrCjB,MAAM,EAAE,CAACvB,KAAK,CAACuB,MAAM,CAACwD,MAAM,CAAE;QAC9BC,uBAAuB,EAAEhF,KAAK,CAACuB,MAAM,CAACgC;MAAQ,CAC/C,CACF;MAAA5B,QAAA,gBAGDnC,IAAA,CAAChB,IAAI;QACHuC,KAAK,EAAE;UACLiC,gBAAgB,EAAE,EAAE;UACpBC,WAAW,EAAE,CAAC;UACdC,WAAW,EAAElD,KAAK,CAACuB,MAAM,CAACC,MAAM;UAChC2B,YAAY,EAAEnD,KAAK,CAACoD,KAAK,CAACC,IAAI;UAC9BC,eAAe,EAAEtD,KAAK,CAACuB,MAAM,CAACgC,OAAO;UACrCC,QAAQ,EAAE;QACZ,CAAE;QAAA7B,QAAA,EAED9B,aAAa,CAAC4D,GAAG,CAAC,CAACnD,IAAI,EAAEoD,CAAC,kBACzBhE,KAAA,CAACT,YAAY;UAEXiB,OAAO,EAAEA,CAAA,KAAMgE,SAAS,CAAC5D,IAAI,CAAE;UAC/BN,KAAK,EAAEA,KAAM;UACba,kBAAkB,EAAEZ,OAAO,CAACM,CAAC,CAAC,cAAc,EAAE;YAC5CD,IAAI,EAAEL,OAAO,CAACM,CAAC,CAAC,QAAQD,IAAI,EAAE;UAChC,CAAC,CAAE;UACHS,KAAK,EAAE;YACLC,aAAa,EAAE,KAAK;YACpBC,UAAU,EAAE,QAAQ;YACpBC,GAAG,EAAE,EAAE;YACPC,iBAAiB,EAAE,EAAE;YACrBC,eAAe,EAAE,EAAE;YACnB6D,cAAc,EAAEvB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YAC/BwB,cAAc,EAAElF,KAAK,CAACuB,MAAM,CAACC;UAC/B,CAAE;UAAAG,QAAA,gBAEFnC,IAAA,CAACH,SAAS;YAACiB,IAAI,EAAEA,IAAK;YAACN,KAAK,EAAEA,KAAM;YAAC4B,IAAI,EAAE;UAAG,CAAE,CAAC,eACjDlC,KAAA,CAAClB,IAAI;YAACuC,KAAK,EAAE;cAAEc,IAAI,EAAE,CAAC;cAAEX,GAAG,EAAE;YAAE,CAAE;YAAAS,QAAA,gBAC/BnC,IAAA,CAACjB,IAAI;cAACwC,KAAK,EAAE3B,UAAU,CAAC+F,OAAO,CAACnF,KAAK,CAAE;cAAA2B,QAAA,EACpC1B,OAAO,CAACM,CAAC,CAAC,QAAQD,IAAI,EAAE;YAAC,CACtB,CAAC,eACPd,IAAA,CAACjB,IAAI;cAACwC,KAAK,EAAE3B,UAAU,CAACgD,IAAI,CAACpC,KAAK,CAAE;cAAA2B,QAAA,EACjC1B,OAAO,CAACM,CAAC,CAAC,QAAQD,IAAI,EAAE;YAAC,CACtB,CAAC;UAAA,CACH,CAAC,eACPd,IAAA,CAACb,OAAO;YAACuD,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACiB;UAAa,CAAE,CAAC;QAAA,GAzBxClC,IA0BO,CACf;MAAC,CACE,CAAC,eAIPd,IAAA,CAAChB,IAAI;QACHuC,KAAK,EAAE;UACL+B,SAAS,EAAE,EAAE;UACbE,gBAAgB,EAAE,EAAE;UACpBC,WAAW,EAAE,CAAC;UACdC,WAAW,EAAElD,KAAK,CAACuB,MAAM,CAACC,MAAM;UAChC2B,YAAY,EAAEnD,KAAK,CAACoD,KAAK,CAACC,IAAI;UAC9BC,eAAe,EAAEtD,KAAK,CAACuB,MAAM,CAACgC,OAAO;UACrCC,QAAQ,EAAE;QACZ,CAAE;QAAA7B,QAAA,eAEFjC,KAAA,CAACT,YAAY;UACXiB,OAAO,EAAEiE,gBAAiB;UAC1BnE,KAAK,EAAEA,KAAM;UACba,kBAAkB,EAAEZ,OAAO,CAACM,CAAC,CAAC,aAAa,CAAE;UAC7CQ,KAAK,EAAE;YACLC,aAAa,EAAE,KAAK;YACpBC,UAAU,EAAE,QAAQ;YACpBC,GAAG,EAAE,EAAE;YACPC,iBAAiB,EAAE,EAAE;YACrBC,eAAe,EAAE;UACnB,CAAE;UAAAO,QAAA,gBAEFnC,IAAA,CAACX,SAAS;YAACqD,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACiB,YAAa;YAACZ,IAAI,EAAE;UAAG,CAAE,CAAC,eACzDpC,IAAA,CAACjB,IAAI;YAACwC,KAAK,EAAE,CAAC3B,UAAU,CAACsF,SAAS,CAAC1E,KAAK,CAAC,EAAE;cAAE6B,IAAI,EAAE;YAAE,CAAC,CAAE;YAAAF,QAAA,EACrD1B,OAAO,CAACM,CAAC,CAAC,eAAe;UAAC,CACvB,CAAC,eACPf,IAAA,CAACjB,IAAI;YAACwC,KAAK,EAAE3B,UAAU,CAACgD,IAAI,CAACpC,KAAK,CAAE;YAAA2B,QAAA,EACjClD,eAAe,CAACoF,QAAQ;UAAC,CACtB,CAAC,eACPrE,IAAA,CAACb,OAAO;YAACuD,KAAK,EAAElC,KAAK,CAACuB,MAAM,CAACiB;UAAa,CAAE,CAAC;QAAA,CACjC;MAAC,CACX,CAAC,EAGNwB,KAAK,KAAK,IAAI,IAAIrB,OAAO,KAAK,IAAI;MAAA;MACjC;MACA;MACAnD,IAAA,CAACT,UAAU;QACTqG,OAAO,EAAEpB,KAAM;QACfqB,OAAO,EAAEpB,SAAU;QACnBjE,KAAK,EAAEA,KAAM;QACbC,OAAO,EAAEA;MAAQ,CAClB,CAAC,GACA6D,OAAO,IAAInB,OAAO,KAAK,IAAI,gBAC7BjD,KAAA,CAAClB,IAAI;QAACuC,KAAK,EAAE;UAAEI,iBAAiB,EAAE,EAAE;UAAEqD,UAAU,EAAE,EAAE;UAAEtD,GAAG,EAAE;QAAG,CAAE;QAAAS,QAAA,gBAC9DnC,IAAA,CAACL,aAAa;UAACmG,KAAK,EAAE,GAAI;UAACC,MAAM,EAAE,EAAG;UAACvF,KAAK,EAAEA,KAAM;UAACwF,MAAM,EAAE;QAAE,CAAE,CAAC,eAClEhG,IAAA,CAACL,aAAa;UAACmG,KAAK,EAAC,MAAM;UAACC,MAAM,EAAE,EAAG;UAACvF,KAAK,EAAEA,KAAM;UAACwF,MAAM,EAAExF,KAAK,CAACoD,KAAK,CAACC;QAAK,CAAE,CAAC,eAClF7D,IAAA,CAACL,aAAa;UAACmG,KAAK,EAAC,MAAM;UAACC,MAAM,EAAE,EAAG;UAACvF,KAAK,EAAEA,KAAM;UAACwF,MAAM,EAAExF,KAAK,CAACoD,KAAK,CAACC;QAAK,CAAE,CAAC;MAAA,CAC9E,CAAC,GACL,CAACV,OAAO,IAAI,EAAE,EAAEE,MAAM,KAAK,CAAC,gBAC9BrD,IAAA,CAACV,UAAU;QACTsG,OAAO,EAAEnF,OAAO,CAACM,CAAC,CAAC,YAAY,CAAE;QACjCkF,IAAI,EAAExF,OAAO,CAACM,CAAC,CAAC,gBAAgB,CAAE;QAClCP,KAAK,EAAEA;MAAM,CACd,CAAC,gBAEFN,KAAA,CAAAE,SAAA;QAAA+B,QAAA,gBACEnC,IAAA,CAACiD,WAAW;UACVC,KAAK,EAAE,GAAGzC,OAAO,CAACM,CAAC,CAAC,WAAW,CAAC,MAAM8D,IAAI,CAACxB,MAAM,EAAG;UACpDF,OAAO,EAAE0B,IAAK;UACdrE,KAAK,EAAEA,KAAM;UACbC,OAAO,EAAEA,OAAQ;UACjB2C,YAAY,EAAEA;QAAa,CAC5B,CAAC,eACFpD,IAAA,CAACiD,WAAW;UACVC,KAAK,EAAEzC,OAAO,CAACM,CAAC,CAAC,eAAe,CAAE;UAClCoC,OAAO,EAAE4B,QAAS;UAClBvE,KAAK,EAAEA,KAAM;UACbC,OAAO,EAAEA,OAAQ;UACjB2C,YAAY,EAAEA;QAAa,CAC5B,CAAC;MAAA,CACF,CACH;IAAA,CACS,CAAC;EAAA,CACT,CAAC;AAEX","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ import { useState } from 'react';
4
+ import { ScrollView, Text, View } from 'react-native';
5
+ import { LANGUAGE_LABELS, SUPPORTED_LANGUAGES } from '../../i18n/languages';
6
+ import { CheckIcon, Chevron, CloseIcon } from '../icons';
7
+ import { IconButton, PressableRow, PrimaryButton, textStyles } from '../primitives';
8
+
9
+ /**
10
+ * The one-time language prompt, and the same screen again whenever the user
11
+ * changes their mind from the home header.
12
+ *
13
+ * Selecting a row re-renders the whole sheet in that language immediately —
14
+ * the confirmation button is the only way to see what you are choosing before
15
+ * you commit to it.
16
+ */
17
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ export function LanguageScreen({
19
+ theme,
20
+ strings,
21
+ selected,
22
+ onSelect,
23
+ onConfirm,
24
+ onBack,
25
+ onDismiss,
26
+ saving,
27
+ error
28
+ }) {
29
+ // Held so the list doesn't reorder under a finger mid-scroll.
30
+ const [languages] = useState(() => [...SUPPORTED_LANGUAGES]);
31
+ return /*#__PURE__*/_jsxs(View, {
32
+ style: {
33
+ flex: 1
34
+ },
35
+ children: [/*#__PURE__*/_jsxs(View, {
36
+ style: {
37
+ flexDirection: 'row',
38
+ alignItems: 'flex-start',
39
+ paddingHorizontal: 16,
40
+ paddingTop: 4,
41
+ paddingBottom: 16,
42
+ gap: 10
43
+ },
44
+ children: [onBack !== undefined && /*#__PURE__*/_jsx(IconButton, {
45
+ onPress: onBack,
46
+ theme: theme,
47
+ accessibilityLabel: strings.t('compose.back'),
48
+ size: 32,
49
+ children: /*#__PURE__*/_jsx(Chevron, {
50
+ color: theme.colors.textSecondary,
51
+ direction: "left",
52
+ size: 12
53
+ })
54
+ }), /*#__PURE__*/_jsxs(View, {
55
+ style: {
56
+ flex: 1,
57
+ gap: 2
58
+ },
59
+ children: [/*#__PURE__*/_jsx(Text, {
60
+ style: textStyles.title(theme),
61
+ children: strings.t('lang.title')
62
+ }), /*#__PURE__*/_jsx(Text, {
63
+ style: textStyles.secondary(theme),
64
+ children: strings.t('lang.subtitle')
65
+ })]
66
+ }), onDismiss !== undefined && /*#__PURE__*/_jsx(IconButton, {
67
+ onPress: onDismiss,
68
+ theme: theme,
69
+ accessibilityLabel: strings.t('home.close'),
70
+ size: 32,
71
+ children: /*#__PURE__*/_jsx(CloseIcon, {
72
+ color: theme.colors.textSecondary,
73
+ size: 12
74
+ })
75
+ })]
76
+ }), /*#__PURE__*/_jsx(ScrollView, {
77
+ style: {
78
+ flex: 1
79
+ },
80
+ contentContainerStyle: {
81
+ paddingBottom: 8
82
+ },
83
+ children: /*#__PURE__*/_jsx(View, {
84
+ style: {
85
+ marginHorizontal: 16,
86
+ borderWidth: 1,
87
+ borderColor: theme.colors.border,
88
+ borderRadius: theme.radii.card,
89
+ backgroundColor: theme.colors.surface,
90
+ overflow: 'hidden'
91
+ },
92
+ children: languages.map((language, i) => {
93
+ const active = language === selected;
94
+ return /*#__PURE__*/_jsxs(PressableRow, {
95
+ onPress: () => onSelect(language),
96
+ theme: theme,
97
+ accessibilityLabel: LANGUAGE_LABELS[language],
98
+ style: {
99
+ flexDirection: 'row',
100
+ alignItems: 'center',
101
+ gap: 12,
102
+ paddingHorizontal: 16,
103
+ paddingVertical: 13,
104
+ borderTopWidth: i === 0 ? 0 : 1,
105
+ borderTopColor: theme.colors.border
106
+ },
107
+ children: [/*#__PURE__*/_jsx(Text, {
108
+ style: {
109
+ flex: 1,
110
+ fontSize: 15,
111
+ fontWeight: active ? '600' : '400',
112
+ color: theme.colors.textPrimary
113
+ },
114
+ children: LANGUAGE_LABELS[language]
115
+ }), active && /*#__PURE__*/_jsx(CheckIcon, {
116
+ color: theme.colors.accent,
117
+ size: 16
118
+ })]
119
+ }, language);
120
+ })
121
+ })
122
+ }), /*#__PURE__*/_jsxs(View, {
123
+ style: {
124
+ paddingHorizontal: 16,
125
+ paddingTop: 12,
126
+ paddingBottom: 8,
127
+ gap: 8,
128
+ borderTopWidth: 1,
129
+ borderTopColor: theme.colors.border
130
+ },
131
+ children: [error !== null && /*#__PURE__*/_jsx(Text, {
132
+ style: {
133
+ fontSize: 12,
134
+ color: theme.colors.statusDanger
135
+ },
136
+ children: error
137
+ }), /*#__PURE__*/_jsx(PrimaryButton, {
138
+ label: saving ? strings.t('compose.sending') : strings.t('lang.continue'),
139
+ onPress: onConfirm,
140
+ disabled: saving,
141
+ theme: theme,
142
+ fullWidth: true
143
+ })]
144
+ })]
145
+ });
146
+ }
147
+ //# sourceMappingURL=LanguageScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","ScrollView","Text","View","LANGUAGE_LABELS","SUPPORTED_LANGUAGES","CheckIcon","Chevron","CloseIcon","IconButton","PressableRow","PrimaryButton","textStyles","jsx","_jsx","jsxs","_jsxs","LanguageScreen","theme","strings","selected","onSelect","onConfirm","onBack","onDismiss","saving","error","languages","style","flex","children","flexDirection","alignItems","paddingHorizontal","paddingTop","paddingBottom","gap","undefined","onPress","accessibilityLabel","t","size","color","colors","textSecondary","direction","title","secondary","contentContainerStyle","marginHorizontal","borderWidth","borderColor","border","borderRadius","radii","card","backgroundColor","surface","overflow","map","language","i","active","paddingVertical","borderTopWidth","borderTopColor","fontSize","fontWeight","textPrimary","accent","statusDanger","label","disabled","fullWidth"],"sourceRoot":"../../../../src","sources":["components/screens/LanguageScreen.tsx"],"mappings":"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","ignoreList":[]}