@ringg/react-native 0.0.1-alpha.9 → 0.2.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 (118) hide show
  1. package/dist/index.d.mts +964 -0
  2. package/dist/index.d.ts +964 -0
  3. package/dist/index.js +1164 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +1129 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +24 -66
  8. package/LICENSE +0 -21
  9. package/README.md +0 -250
  10. package/app.plugin.js +0 -51
  11. package/lib/module/adapters/index.js +0 -4
  12. package/lib/module/adapters/index.js.map +0 -1
  13. package/lib/module/adapters/livekit-rn-adapter.js +0 -216
  14. package/lib/module/adapters/livekit-rn-adapter.js.map +0 -1
  15. package/lib/module/components/RinggWidget.js +0 -554
  16. package/lib/module/components/RinggWidget.js.map +0 -1
  17. package/lib/module/components/steps/ButtonsStep.js +0 -146
  18. package/lib/module/components/steps/ButtonsStep.js.map +0 -1
  19. package/lib/module/components/steps/CalendarStep.js +0 -190
  20. package/lib/module/components/steps/CalendarStep.js.map +0 -1
  21. package/lib/module/components/steps/ConfirmationStep.js +0 -175
  22. package/lib/module/components/steps/ConfirmationStep.js.map +0 -1
  23. package/lib/module/components/steps/FormStep.js +0 -346
  24. package/lib/module/components/steps/FormStep.js.map +0 -1
  25. package/lib/module/components/steps/InteractiveFlow.js +0 -249
  26. package/lib/module/components/steps/InteractiveFlow.js.map +0 -1
  27. package/lib/module/components/ui/ActionButton.js +0 -92
  28. package/lib/module/components/ui/ActionButton.js.map +0 -1
  29. package/lib/module/components/ui/CallControls.js +0 -168
  30. package/lib/module/components/ui/CallControls.js.map +0 -1
  31. package/lib/module/components/ui/FeedbackScreen.js +0 -180
  32. package/lib/module/components/ui/FeedbackScreen.js.map +0 -1
  33. package/lib/module/components/ui/Icons.js +0 -294
  34. package/lib/module/components/ui/Icons.js.map +0 -1
  35. package/lib/module/components/ui/MessageBubble.js +0 -80
  36. package/lib/module/components/ui/MessageBubble.js.map +0 -1
  37. package/lib/module/components/ui/TabSelector.js +0 -80
  38. package/lib/module/components/ui/TabSelector.js.map +0 -1
  39. package/lib/module/components/ui/WidgetHeader.js +0 -168
  40. package/lib/module/components/ui/WidgetHeader.js.map +0 -1
  41. package/lib/module/context/RinggProvider.js +0 -134
  42. package/lib/module/context/RinggProvider.js.map +0 -1
  43. package/lib/module/context/index.js +0 -4
  44. package/lib/module/context/index.js.map +0 -1
  45. package/lib/module/globals.d.js +0 -2
  46. package/lib/module/globals.d.js.map +0 -1
  47. package/lib/module/hooks/index.js +0 -10
  48. package/lib/module/hooks/index.js.map +0 -1
  49. package/lib/module/hooks/useRinggCall.js +0 -259
  50. package/lib/module/hooks/useRinggCall.js.map +0 -1
  51. package/lib/module/hooks/useRinggChat.js +0 -141
  52. package/lib/module/hooks/useRinggChat.js.map +0 -1
  53. package/lib/module/hooks/useRinggComponents.js +0 -236
  54. package/lib/module/hooks/useRinggComponents.js.map +0 -1
  55. package/lib/module/hooks/useRinggFeedback.js +0 -66
  56. package/lib/module/hooks/useRinggFeedback.js.map +0 -1
  57. package/lib/module/hooks/useRinggTheme.js +0 -39
  58. package/lib/module/hooks/useRinggTheme.js.map +0 -1
  59. package/lib/module/hooks/useRinggTranscripts.js +0 -70
  60. package/lib/module/hooks/useRinggTranscripts.js.map +0 -1
  61. package/lib/module/hooks/useRinggWidgetState.js +0 -51
  62. package/lib/module/hooks/useRinggWidgetState.js.map +0 -1
  63. package/lib/module/index.js +0 -56
  64. package/lib/module/index.js.map +0 -1
  65. package/lib/module/package.json +0 -1
  66. package/lib/typescript/adapters/index.d.ts +0 -2
  67. package/lib/typescript/adapters/index.d.ts.map +0 -1
  68. package/lib/typescript/adapters/livekit-rn-adapter.d.ts +0 -38
  69. package/lib/typescript/adapters/livekit-rn-adapter.d.ts.map +0 -1
  70. package/lib/typescript/components/RinggWidget.d.ts +0 -44
  71. package/lib/typescript/components/RinggWidget.d.ts.map +0 -1
  72. package/lib/typescript/components/steps/ButtonsStep.d.ts +0 -17
  73. package/lib/typescript/components/steps/ButtonsStep.d.ts.map +0 -1
  74. package/lib/typescript/components/steps/CalendarStep.d.ts +0 -16
  75. package/lib/typescript/components/steps/CalendarStep.d.ts.map +0 -1
  76. package/lib/typescript/components/steps/ConfirmationStep.d.ts +0 -16
  77. package/lib/typescript/components/steps/ConfirmationStep.d.ts.map +0 -1
  78. package/lib/typescript/components/steps/FormStep.d.ts +0 -17
  79. package/lib/typescript/components/steps/FormStep.d.ts.map +0 -1
  80. package/lib/typescript/components/steps/InteractiveFlow.d.ts +0 -23
  81. package/lib/typescript/components/steps/InteractiveFlow.d.ts.map +0 -1
  82. package/lib/typescript/components/ui/ActionButton.d.ts +0 -22
  83. package/lib/typescript/components/ui/ActionButton.d.ts.map +0 -1
  84. package/lib/typescript/components/ui/CallControls.d.ts +0 -22
  85. package/lib/typescript/components/ui/CallControls.d.ts.map +0 -1
  86. package/lib/typescript/components/ui/FeedbackScreen.d.ts +0 -24
  87. package/lib/typescript/components/ui/FeedbackScreen.d.ts.map +0 -1
  88. package/lib/typescript/components/ui/Icons.d.ts +0 -28
  89. package/lib/typescript/components/ui/Icons.d.ts.map +0 -1
  90. package/lib/typescript/components/ui/MessageBubble.d.ts +0 -17
  91. package/lib/typescript/components/ui/MessageBubble.d.ts.map +0 -1
  92. package/lib/typescript/components/ui/TabSelector.d.ts +0 -21
  93. package/lib/typescript/components/ui/TabSelector.d.ts.map +0 -1
  94. package/lib/typescript/components/ui/WidgetHeader.d.ts +0 -20
  95. package/lib/typescript/components/ui/WidgetHeader.d.ts.map +0 -1
  96. package/lib/typescript/context/RinggProvider.d.ts +0 -53
  97. package/lib/typescript/context/RinggProvider.d.ts.map +0 -1
  98. package/lib/typescript/context/index.d.ts +0 -3
  99. package/lib/typescript/context/index.d.ts.map +0 -1
  100. package/lib/typescript/hooks/index.d.ts +0 -15
  101. package/lib/typescript/hooks/index.d.ts.map +0 -1
  102. package/lib/typescript/hooks/useRinggCall.d.ts +0 -41
  103. package/lib/typescript/hooks/useRinggCall.d.ts.map +0 -1
  104. package/lib/typescript/hooks/useRinggChat.d.ts +0 -29
  105. package/lib/typescript/hooks/useRinggChat.d.ts.map +0 -1
  106. package/lib/typescript/hooks/useRinggComponents.d.ts +0 -52
  107. package/lib/typescript/hooks/useRinggComponents.d.ts.map +0 -1
  108. package/lib/typescript/hooks/useRinggFeedback.d.ts +0 -23
  109. package/lib/typescript/hooks/useRinggFeedback.d.ts.map +0 -1
  110. package/lib/typescript/hooks/useRinggTheme.d.ts +0 -40
  111. package/lib/typescript/hooks/useRinggTheme.d.ts.map +0 -1
  112. package/lib/typescript/hooks/useRinggTranscripts.d.ts +0 -30
  113. package/lib/typescript/hooks/useRinggTranscripts.d.ts.map +0 -1
  114. package/lib/typescript/hooks/useRinggWidgetState.d.ts +0 -38
  115. package/lib/typescript/hooks/useRinggWidgetState.d.ts.map +0 -1
  116. package/lib/typescript/index.d.ts +0 -44
  117. package/lib/typescript/index.d.ts.map +0 -1
  118. package/lib/typescript/package.json +0 -1
@@ -1,346 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * FormStep — dynamic form renderer supporting 9 field types with validation.
5
- *
6
- * Field types: text, email, tel, number, select, multiselect, textarea, date, boolean.
7
- * Matches CDN form-step.tsx behavior.
8
- */
9
-
10
- import React, { useState, useCallback } from "react";
11
- import { View, Text, TextInput, TouchableOpacity, ActivityIndicator, Switch, ScrollView, StyleSheet } from "react-native";
12
- import { colorToSolid, getButtonRadius } from "@ringg/core";
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- export function FormStep({
15
- payload,
16
- theme,
17
- isProcessing,
18
- onComplete
19
- }) {
20
- const {
21
- data
22
- } = payload;
23
- const buttonRadius = parseInt(getButtonRadius(theme.buttonStyle), 10) || 8;
24
- const primarySolid = colorToSolid(theme.primaryColor);
25
- const [formData, setFormData] = useState({});
26
- const [fieldErrors, setFieldErrors] = useState({});
27
- const getOptionLabel = option => typeof option === "string" ? option : option.label;
28
- const getOptionValue = option => typeof option === "string" ? option : option.value;
29
- const validateField = useCallback((field, value) => {
30
- if (field.required) {
31
- if (value === undefined || value === null || value === "" || Array.isArray(value) && value.length === 0 || typeof value === "string" && !value.trim()) {
32
- return `${field.label} is required`;
33
- }
34
- }
35
- if (typeof value === "string" && value) {
36
- if (field.validation) {
37
- if (field.validation.minLength && value.length < field.validation.minLength) {
38
- return field.validation.message || `${field.label} must be at least ${field.validation.minLength} characters`;
39
- }
40
- if (field.validation.maxLength && value.length > field.validation.maxLength) {
41
- return field.validation.message || `${field.label} must be at most ${field.validation.maxLength} characters`;
42
- }
43
- if (field.validation.pattern) {
44
- const regex = new RegExp(field.validation.pattern);
45
- if (!regex.test(value)) {
46
- return field.validation.message || `${field.label} is invalid`;
47
- }
48
- }
49
- }
50
- if (field.type === "email") {
51
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
52
- if (!emailRegex.test(value)) {
53
- return "Please enter a valid email address";
54
- }
55
- }
56
- if (field.type === "tel") {
57
- const phoneRegex = /^[\d\s\-+()]{7,}$/;
58
- if (!phoneRegex.test(value)) {
59
- return "Please enter a valid phone number";
60
- }
61
- }
62
- }
63
- return null;
64
- }, []);
65
- const handleFieldChange = useCallback((fieldName, value) => {
66
- setFormData(prev => ({
67
- ...prev,
68
- [fieldName]: value
69
- }));
70
- setFieldErrors(prev => {
71
- if (prev[fieldName]) {
72
- const next = {
73
- ...prev
74
- };
75
- delete next[fieldName];
76
- return next;
77
- }
78
- return prev;
79
- });
80
- }, []);
81
- const handleMultiselectToggle = useCallback((fieldName, optionValue, checked) => {
82
- setFormData(prev => {
83
- const current = prev[fieldName] || [];
84
- const next = checked ? [...current, optionValue] : current.filter(v => v !== optionValue);
85
- return {
86
- ...prev,
87
- [fieldName]: next
88
- };
89
- });
90
- setFieldErrors(prev => {
91
- if (prev[fieldName]) {
92
- const next = {
93
- ...prev
94
- };
95
- delete next[fieldName];
96
- return next;
97
- }
98
- return prev;
99
- });
100
- }, []);
101
- const handleSubmit = useCallback(() => {
102
- const errors = {};
103
- let valid = true;
104
- data.fields.forEach(field => {
105
- const error = validateField(field, formData[field.name]);
106
- if (error) {
107
- errors[field.name] = error;
108
- valid = false;
109
- }
110
- });
111
- setFieldErrors(errors);
112
- if (valid) {
113
- onComplete(formData);
114
- }
115
- }, [data.fields, formData, validateField, onComplete]);
116
- const inputStyle = hasError => ({
117
- backgroundColor: "#ffffff",
118
- color: theme.textColor,
119
- borderColor: hasError ? theme.errorColor : theme.borderColor,
120
- borderWidth: 1,
121
- borderRadius: buttonRadius
122
- });
123
- return /*#__PURE__*/_jsxs(View, {
124
- children: [/*#__PURE__*/_jsx(Text, {
125
- style: [styles.title, {
126
- color: theme.textColor
127
- }],
128
- children: data.title
129
- }), data.description ? /*#__PURE__*/_jsx(Text, {
130
- style: [styles.description, {
131
- color: theme.mutedTextColor
132
- }],
133
- children: data.description
134
- }) : null, /*#__PURE__*/_jsx(View, {
135
- style: styles.fieldsContainer,
136
- children: data.fields.map(field => {
137
- const hasError = !!fieldErrors[field.name];
138
- return /*#__PURE__*/_jsxs(View, {
139
- style: styles.fieldWrapper,
140
- children: [/*#__PURE__*/_jsxs(Text, {
141
- style: [styles.fieldLabel, {
142
- color: theme.mutedTextColor
143
- }],
144
- children: [field.label, field.required ? /*#__PURE__*/_jsx(Text, {
145
- style: {
146
- color: theme.errorColor
147
- },
148
- children: " *"
149
- }) : null]
150
- }), field.type === "select" && field.options ? /*#__PURE__*/_jsx(ScrollView, {
151
- horizontal: true,
152
- showsHorizontalScrollIndicator: false,
153
- children: field.options.map((option, idx) => {
154
- const val = getOptionValue(option);
155
- const isSelected = formData[field.name] === val;
156
- return /*#__PURE__*/_jsx(TouchableOpacity, {
157
- onPress: () => handleFieldChange(field.name, val),
158
- style: [styles.selectPill, {
159
- borderRadius: buttonRadius,
160
- backgroundColor: isSelected ? primarySolid : "#ffffff",
161
- borderColor: isSelected ? primarySolid : theme.borderColor,
162
- borderWidth: 1
163
- }],
164
- activeOpacity: 0.8,
165
- children: /*#__PURE__*/_jsx(Text, {
166
- style: [styles.selectPillText, {
167
- color: isSelected ? theme.primaryTextColor : theme.textColor
168
- }],
169
- children: getOptionLabel(option)
170
- })
171
- }, idx);
172
- })
173
- }) : null, field.type === "multiselect" && field.options ? /*#__PURE__*/_jsx(View, {
174
- style: styles.multiselectContainer,
175
- children: field.options.map((option, idx) => {
176
- const val = getOptionValue(option);
177
- const isChecked = (formData[field.name] || []).includes(val);
178
- return /*#__PURE__*/_jsx(TouchableOpacity, {
179
- onPress: () => handleMultiselectToggle(field.name, val, !isChecked),
180
- style: [styles.selectPill, {
181
- borderRadius: buttonRadius,
182
- backgroundColor: isChecked ? primarySolid : "#ffffff",
183
- borderColor: isChecked ? primarySolid : theme.borderColor,
184
- borderWidth: 1
185
- }],
186
- activeOpacity: 0.8,
187
- children: /*#__PURE__*/_jsx(Text, {
188
- style: [styles.selectPillText, {
189
- color: isChecked ? theme.primaryTextColor : theme.textColor
190
- }],
191
- children: getOptionLabel(option)
192
- })
193
- }, idx);
194
- })
195
- }) : null, field.type === "boolean" ? /*#__PURE__*/_jsxs(View, {
196
- style: styles.booleanRow,
197
- children: [/*#__PURE__*/_jsx(Switch, {
198
- value: formData[field.name] || false,
199
- onValueChange: v => handleFieldChange(field.name, v),
200
- trackColor: {
201
- false: theme.borderColor,
202
- true: primarySolid
203
- },
204
- thumbColor: "#ffffff"
205
- }), /*#__PURE__*/_jsx(Text, {
206
- style: [styles.booleanLabel, {
207
- color: theme.mutedTextColor
208
- }],
209
- children: field.placeholder || "Yes"
210
- })]
211
- }) : null, field.type === "textarea" ? /*#__PURE__*/_jsx(TextInput, {
212
- placeholder: field.placeholder || `Enter ${field.label.toLowerCase()}`,
213
- placeholderTextColor: theme.mutedTextColor,
214
- value: formData[field.name] || "",
215
- onChangeText: v => handleFieldChange(field.name, v),
216
- multiline: true,
217
- numberOfLines: 3,
218
- textAlignVertical: "top",
219
- style: [styles.textArea, inputStyle(hasError)]
220
- }) : null, field.type === "number" ? /*#__PURE__*/_jsx(TextInput, {
221
- placeholder: field.placeholder || `Enter ${field.label.toLowerCase()}`,
222
- placeholderTextColor: theme.mutedTextColor,
223
- value: formData[field.name] !== undefined ? String(formData[field.name]) : "",
224
- onChangeText: v => handleFieldChange(field.name, v ? Number(v) : ""),
225
- keyboardType: "numeric",
226
- style: [styles.textInput, inputStyle(hasError)]
227
- }) : null, field.type !== "select" && field.type !== "multiselect" && field.type !== "boolean" && field.type !== "textarea" && field.type !== "number" ? /*#__PURE__*/_jsx(TextInput, {
228
- placeholder: field.placeholder || `Enter ${field.label.toLowerCase()}`,
229
- placeholderTextColor: theme.mutedTextColor,
230
- value: formData[field.name] || "",
231
- onChangeText: v => handleFieldChange(field.name, v),
232
- keyboardType: field.type === "email" ? "email-address" : field.type === "tel" ? "phone-pad" : "default",
233
- autoCapitalize: field.type === "email" ? "none" : "sentences",
234
- style: [styles.textInput, inputStyle(hasError)]
235
- }) : null, hasError ? /*#__PURE__*/_jsx(Text, {
236
- style: [styles.errorText, {
237
- color: theme.errorColor
238
- }],
239
- children: fieldErrors[field.name]
240
- }) : null]
241
- }, field.name);
242
- })
243
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
244
- onPress: handleSubmit,
245
- disabled: isProcessing,
246
- style: [styles.submitButton, {
247
- borderRadius: buttonRadius,
248
- backgroundColor: isProcessing ? theme.borderColor : primarySolid,
249
- opacity: isProcessing ? 0.5 : 1
250
- }],
251
- activeOpacity: 0.9,
252
- children: isProcessing ? /*#__PURE__*/_jsxs(View, {
253
- style: styles.loadingRow,
254
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
255
- color: theme.primaryTextColor,
256
- size: "small"
257
- }), /*#__PURE__*/_jsx(Text, {
258
- style: [styles.submitText, {
259
- color: theme.primaryTextColor
260
- }],
261
- children: "Submitting..."
262
- })]
263
- }) : /*#__PURE__*/_jsx(Text, {
264
- style: [styles.submitText, {
265
- color: theme.primaryTextColor
266
- }],
267
- children: data.submit_label || "Next"
268
- })
269
- })]
270
- });
271
- }
272
- const styles = StyleSheet.create({
273
- title: {
274
- fontSize: 14,
275
- fontWeight: "500",
276
- marginBottom: 4
277
- },
278
- description: {
279
- fontSize: 12,
280
- marginBottom: 10
281
- },
282
- fieldsContainer: {
283
- gap: 10,
284
- marginBottom: 12
285
- },
286
- fieldWrapper: {
287
- gap: 4
288
- },
289
- fieldLabel: {
290
- fontSize: 11,
291
- fontWeight: "500"
292
- },
293
- textInput: {
294
- paddingHorizontal: 12,
295
- paddingVertical: 8,
296
- fontSize: 13
297
- },
298
- textArea: {
299
- paddingHorizontal: 12,
300
- paddingVertical: 8,
301
- fontSize: 13,
302
- minHeight: 64
303
- },
304
- selectPill: {
305
- paddingHorizontal: 12,
306
- paddingVertical: 6,
307
- marginRight: 6,
308
- marginBottom: 4
309
- },
310
- selectPillText: {
311
- fontSize: 12,
312
- fontWeight: "500"
313
- },
314
- multiselectContainer: {
315
- flexDirection: "row",
316
- flexWrap: "wrap"
317
- },
318
- booleanRow: {
319
- flexDirection: "row",
320
- alignItems: "center",
321
- gap: 8,
322
- paddingVertical: 2
323
- },
324
- booleanLabel: {
325
- fontSize: 12
326
- },
327
- errorText: {
328
- fontSize: 11,
329
- marginTop: 2
330
- },
331
- submitButton: {
332
- height: 36,
333
- alignItems: "center",
334
- justifyContent: "center"
335
- },
336
- loadingRow: {
337
- flexDirection: "row",
338
- alignItems: "center",
339
- gap: 8
340
- },
341
- submitText: {
342
- fontSize: 13,
343
- fontWeight: "600"
344
- }
345
- });
346
- //# sourceMappingURL=FormStep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useState","useCallback","View","Text","TextInput","TouchableOpacity","ActivityIndicator","Switch","ScrollView","StyleSheet","colorToSolid","getButtonRadius","jsx","_jsx","jsxs","_jsxs","FormStep","payload","theme","isProcessing","onComplete","data","buttonRadius","parseInt","buttonStyle","primarySolid","primaryColor","formData","setFormData","fieldErrors","setFieldErrors","getOptionLabel","option","label","getOptionValue","value","validateField","field","required","undefined","Array","isArray","length","trim","validation","minLength","message","maxLength","pattern","regex","RegExp","test","type","emailRegex","phoneRegex","handleFieldChange","fieldName","prev","next","handleMultiselectToggle","optionValue","checked","current","filter","v","handleSubmit","errors","valid","fields","forEach","error","name","inputStyle","hasError","backgroundColor","color","textColor","borderColor","errorColor","borderWidth","borderRadius","children","style","styles","title","description","mutedTextColor","fieldsContainer","map","fieldWrapper","fieldLabel","options","horizontal","showsHorizontalScrollIndicator","idx","val","isSelected","onPress","selectPill","activeOpacity","selectPillText","primaryTextColor","multiselectContainer","isChecked","includes","booleanRow","onValueChange","trackColor","false","true","thumbColor","booleanLabel","placeholder","toLowerCase","placeholderTextColor","onChangeText","multiline","numberOfLines","textAlignVertical","textArea","String","Number","keyboardType","textInput","autoCapitalize","errorText","disabled","submitButton","opacity","loadingRow","size","submitText","submit_label","create","fontSize","fontWeight","marginBottom","gap","paddingHorizontal","paddingVertical","minHeight","marginRight","flexDirection","flexWrap","alignItems","marginTop","height","justifyContent"],"sourceRoot":"../../../../src","sources":["components/steps/FormStep.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,249 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * InteractiveFlow — orchestrator for interactive components.
5
- *
6
- * Handles:
7
- * - Single components (calendar, form, buttons, confirmation)
8
- * - Multi-step interactive flows with back/forward navigation
9
- * - Step progress indicator
10
- * - Post-completion confirmation screen
11
- * - RPC response sending via onSendResponse callback
12
- *
13
- * Matches CDN interactive-flow.tsx behavior.
14
- */
15
-
16
- import React, { useState, useCallback, useMemo } from "react";
17
- import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
18
- import { isCalendarBooking, isForm, isButtons, isConfirmation, formatSlotTime, formatSlotDate, colorToSolid } from "@ringg/core";
19
- import { CalendarStep } from "./CalendarStep.js";
20
- import { FormStep } from "./FormStep.js";
21
- import { ButtonsStep } from "./ButtonsStep.js";
22
- import { ConfirmationStep } from "./ConfirmationStep.js";
23
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
- function isInteractiveFlow(payload) {
25
- return payload.component_type === "interactive_flow";
26
- }
27
- export function InteractiveFlow({
28
- initialComponent,
29
- theme,
30
- onSendResponse,
31
- onComplete
32
- }) {
33
- const isMultiStepFlow = isInteractiveFlow(initialComponent);
34
- const primarySolid = colorToSolid(theme.primaryColor);
35
- const flowSteps = useMemo(() => isMultiStepFlow ? initialComponent.data.steps : [{
36
- id: "single",
37
- title: "",
38
- component: initialComponent
39
- }], [isMultiStepFlow, initialComponent]);
40
- const totalSteps = flowSteps.length;
41
- const [currentStepIndex, setCurrentStepIndex] = useState(0);
42
- const [isProcessing, setIsProcessing] = useState(false);
43
- const [allCollectedData, setAllCollectedData] = useState({});
44
- const [confirmation, setConfirmation] = useState(null);
45
- const [stepCompleted, setStepCompleted] = useState(new Array(totalSteps).fill(false));
46
- const currentStep = flowSteps[currentStepIndex];
47
- const showStepper = totalSteps > 1;
48
- const handleBack = useCallback(() => {
49
- if (currentStepIndex > 0) {
50
- setCurrentStepIndex(prev => prev - 1);
51
- }
52
- }, [currentStepIndex]);
53
- const handleStepComplete = useCallback(async stepData => {
54
- setIsProcessing(true);
55
- const newAllData = {
56
- ...allCollectedData,
57
- ...stepData
58
- };
59
- setAllCollectedData(newAllData);
60
- setStepCompleted(prev => {
61
- const updated = [...prev];
62
- updated[currentStepIndex] = true;
63
- return updated;
64
- });
65
- try {
66
- const isLastStep = currentStepIndex === totalSteps - 1;
67
- if (onSendResponse) {
68
- await onSendResponse(initialComponent.component_id, {
69
- step_index: currentStepIndex,
70
- step_data: stepData,
71
- all_data: newAllData,
72
- is_final_step: isLastStep
73
- });
74
- if (isLastStep) {
75
- setConfirmation({
76
- title: "Success!",
77
- message: "Your selection has been submitted.",
78
- icon: "success"
79
- });
80
- onComplete?.(newAllData);
81
- } else {
82
- setCurrentStepIndex(prev => prev + 1);
83
- }
84
- } else {
85
- // No RPC handler — just advance steps
86
- if (isLastStep) {
87
- setConfirmation({
88
- title: "Success!",
89
- message: "Completed.",
90
- icon: "success"
91
- });
92
- onComplete?.(newAllData);
93
- } else {
94
- setCurrentStepIndex(prev => prev + 1);
95
- }
96
- }
97
- } catch (error) {
98
- setConfirmation({
99
- title: "Something went wrong",
100
- message: error.message || "Please try again.",
101
- icon: "error"
102
- });
103
- } finally {
104
- setIsProcessing(false);
105
- }
106
- }, [allCollectedData, currentStepIndex, totalSteps, initialComponent, onSendResponse, onComplete]);
107
- const handleButtonClick = useCallback((buttonId, action) => {
108
- // Navigate is handled inside ButtonsStep (Linking.openURL)
109
- // For all other actions, just send the selection
110
- handleStepComplete({
111
- selected_button: buttonId
112
- });
113
- }, [handleStepComplete]);
114
- return /*#__PURE__*/_jsxs(View, {
115
- style: [styles.container, {
116
- backgroundColor: theme.surfaceColor
117
- }],
118
- children: [showStepper && !confirmation ? /*#__PURE__*/_jsxs(View, {
119
- style: styles.stepperContainer,
120
- children: [/*#__PURE__*/_jsx(View, {
121
- style: styles.stepperRow,
122
- children: flowSteps.map((step, index) => /*#__PURE__*/_jsxs(View, {
123
- style: styles.stepIndicatorGroup,
124
- children: [/*#__PURE__*/_jsx(View, {
125
- style: [styles.stepCircle, {
126
- backgroundColor: stepCompleted[index] ? theme.successColor : index === currentStepIndex ? primarySolid : theme.borderColor
127
- }],
128
- children: /*#__PURE__*/_jsx(Text, {
129
- style: [styles.stepCircleText, {
130
- color: stepCompleted[index] || index === currentStepIndex ? theme.primaryTextColor : theme.mutedTextColor
131
- }],
132
- children: stepCompleted[index] ? "✓" : index + 1
133
- })
134
- }), index < flowSteps.length - 1 ? /*#__PURE__*/_jsx(View, {
135
- style: [styles.stepConnector, {
136
- backgroundColor: stepCompleted[index] ? theme.successColor : theme.borderColor
137
- }]
138
- }) : null]
139
- }, step.id))
140
- }), /*#__PURE__*/_jsx(Text, {
141
- style: [styles.stepTitle, {
142
- color: theme.textColor
143
- }],
144
- numberOfLines: 1,
145
- children: currentStep.title || `Step ${currentStepIndex + 1} of ${totalSteps}`
146
- })]
147
- }) : null, /*#__PURE__*/_jsxs(View, {
148
- style: styles.content,
149
- children: [currentStepIndex > 0 && !confirmation ? /*#__PURE__*/_jsx(TouchableOpacity, {
150
- onPress: handleBack,
151
- style: styles.backButton,
152
- activeOpacity: 0.7,
153
- children: /*#__PURE__*/_jsx(Text, {
154
- style: [styles.backText, {
155
- color: theme.mutedTextColor
156
- }],
157
- children: "\u2190 Back"
158
- })
159
- }) : null, confirmation ? /*#__PURE__*/_jsx(ConfirmationStep, {
160
- data: confirmation,
161
- theme: theme,
162
- collectedData: allCollectedData
163
- }) : /*#__PURE__*/_jsxs(View, {
164
- children: [isCalendarBooking(currentStep.component) ? /*#__PURE__*/_jsx(CalendarStep, {
165
- payload: currentStep.component,
166
- theme: theme,
167
- isProcessing: isProcessing,
168
- onComplete: (slotId, slotDatetime) => {
169
- const tz = currentStep.component.data.timezone;
170
- handleStepComplete({
171
- slot_id: slotId,
172
- slot_datetime: slotDatetime,
173
- slot_time: formatSlotTime(slotDatetime, tz),
174
- slot_date: formatSlotDate(slotDatetime, tz)
175
- });
176
- }
177
- }) : null, isForm(currentStep.component) ? /*#__PURE__*/_jsx(FormStep, {
178
- payload: currentStep.component,
179
- theme: theme,
180
- isProcessing: isProcessing,
181
- onComplete: formData => handleStepComplete(formData)
182
- }) : null, isButtons(currentStep.component) ? /*#__PURE__*/_jsx(ButtonsStep, {
183
- payload: currentStep.component,
184
- theme: theme,
185
- isProcessing: isProcessing,
186
- onButtonClick: handleButtonClick
187
- }) : null, isConfirmation(currentStep.component) ? /*#__PURE__*/_jsx(ConfirmationStep, {
188
- data: currentStep.component.data,
189
- theme: theme
190
- }) : null]
191
- })]
192
- })]
193
- });
194
- }
195
- const styles = StyleSheet.create({
196
- container: {
197
- borderRadius: 12,
198
- overflow: "hidden"
199
- },
200
- stepperContainer: {
201
- paddingHorizontal: 14,
202
- paddingTop: 14,
203
- paddingBottom: 10
204
- },
205
- stepperRow: {
206
- flexDirection: "row",
207
- alignItems: "center",
208
- gap: 4
209
- },
210
- stepIndicatorGroup: {
211
- flexDirection: "row",
212
- alignItems: "center",
213
- flex: 1,
214
- minWidth: 0
215
- },
216
- stepCircle: {
217
- width: 24,
218
- height: 24,
219
- borderRadius: 12,
220
- alignItems: "center",
221
- justifyContent: "center"
222
- },
223
- stepCircleText: {
224
- fontSize: 11,
225
- fontWeight: "600"
226
- },
227
- stepConnector: {
228
- flex: 1,
229
- height: 2,
230
- borderRadius: 1,
231
- marginLeft: 4
232
- },
233
- stepTitle: {
234
- fontSize: 11,
235
- fontWeight: "500",
236
- marginTop: 8
237
- },
238
- content: {
239
- paddingHorizontal: 14,
240
- paddingBottom: 14
241
- },
242
- backButton: {
243
- marginBottom: 8
244
- },
245
- backText: {
246
- fontSize: 12
247
- }
248
- });
249
- //# sourceMappingURL=InteractiveFlow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useState","useCallback","useMemo","View","Text","TouchableOpacity","StyleSheet","isCalendarBooking","isForm","isButtons","isConfirmation","formatSlotTime","formatSlotDate","colorToSolid","CalendarStep","FormStep","ButtonsStep","ConfirmationStep","jsx","_jsx","jsxs","_jsxs","isInteractiveFlow","payload","component_type","InteractiveFlow","initialComponent","theme","onSendResponse","onComplete","isMultiStepFlow","primarySolid","primaryColor","flowSteps","data","steps","id","title","component","totalSteps","length","currentStepIndex","setCurrentStepIndex","isProcessing","setIsProcessing","allCollectedData","setAllCollectedData","confirmation","setConfirmation","stepCompleted","setStepCompleted","Array","fill","currentStep","showStepper","handleBack","prev","handleStepComplete","stepData","newAllData","updated","isLastStep","component_id","step_index","step_data","all_data","is_final_step","message","icon","error","handleButtonClick","buttonId","action","selected_button","style","styles","container","backgroundColor","surfaceColor","children","stepperContainer","stepperRow","map","step","index","stepIndicatorGroup","stepCircle","successColor","borderColor","stepCircleText","color","primaryTextColor","mutedTextColor","stepConnector","stepTitle","textColor","numberOfLines","content","onPress","backButton","activeOpacity","backText","collectedData","slotId","slotDatetime","tz","timezone","slot_id","slot_datetime","slot_time","slot_date","formData","onButtonClick","create","borderRadius","overflow","paddingHorizontal","paddingTop","paddingBottom","flexDirection","alignItems","gap","flex","minWidth","width","height","justifyContent","fontSize","fontWeight","marginLeft","marginTop","marginBottom"],"sourceRoot":"../../../../src","sources":["components/steps/InteractiveFlow.tsx"],"mappings":"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","ignoreList":[]}