@d34dman/flowdrop 0.0.41 → 0.0.42
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/dist/components/interrupt/ChoicePrompt.svelte +7 -2
- package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +2 -0
- package/dist/components/interrupt/ConfirmationPrompt.svelte +15 -3
- package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +2 -0
- package/dist/components/interrupt/FormPrompt.svelte +7 -2
- package/dist/components/interrupt/FormPrompt.svelte.d.ts +2 -0
- package/dist/components/interrupt/InterruptBubble.svelte +14 -0
- package/dist/components/interrupt/TextInputPrompt.svelte +7 -2
- package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +2 -0
- package/dist/types/interrupt.d.ts +2 -0
- package/dist/types/interrupt.js +2 -1
- package/package.json +1 -1
|
@@ -25,11 +25,14 @@
|
|
|
25
25
|
isSubmitting: boolean;
|
|
26
26
|
/** Error message if submission failed */
|
|
27
27
|
error?: string;
|
|
28
|
+
/** Username of the person who resolved the interrupt */
|
|
29
|
+
resolvedByUserName?: string;
|
|
28
30
|
/** Callback when user submits selection */
|
|
29
31
|
onSubmit: (value: string | string[]) => void;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
let { config, isResolved, resolvedValue, isSubmitting, error, onSubmit }: Props =
|
|
34
|
+
let { config, isResolved, resolvedValue, isSubmitting, error, resolvedByUserName, onSubmit }: Props =
|
|
35
|
+
$props();
|
|
33
36
|
|
|
34
37
|
/** Local state for selected values */
|
|
35
38
|
let selectedValues = $state<Set<string>>(new Set());
|
|
@@ -189,7 +192,9 @@
|
|
|
189
192
|
{#if isResolved}
|
|
190
193
|
<div class="choice-prompt__resolved-badge">
|
|
191
194
|
<Icon icon="mdi:check-circle" />
|
|
192
|
-
<span>
|
|
195
|
+
<span>
|
|
196
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
197
|
+
</span>
|
|
193
198
|
</div>
|
|
194
199
|
{/if}
|
|
195
200
|
</div>
|
|
@@ -13,6 +13,8 @@ interface Props {
|
|
|
13
13
|
isSubmitting: boolean;
|
|
14
14
|
/** Error message if submission failed */
|
|
15
15
|
error?: string;
|
|
16
|
+
/** Username of the person who resolved the interrupt */
|
|
17
|
+
resolvedByUserName?: string;
|
|
16
18
|
/** Callback when user submits selection */
|
|
17
19
|
onSubmit: (value: string | string[]) => void;
|
|
18
20
|
}
|
|
@@ -25,14 +25,24 @@
|
|
|
25
25
|
isSubmitting: boolean;
|
|
26
26
|
/** Error message if submission failed */
|
|
27
27
|
error?: string;
|
|
28
|
+
/** Username of the person who resolved the interrupt */
|
|
29
|
+
resolvedByUserName?: string;
|
|
28
30
|
/** Callback when user confirms (Yes) */
|
|
29
31
|
onConfirm: () => void;
|
|
30
32
|
/** Callback when user declines (No) */
|
|
31
33
|
onDecline: () => void;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
let {
|
|
35
|
-
|
|
36
|
+
let {
|
|
37
|
+
config,
|
|
38
|
+
isResolved,
|
|
39
|
+
resolvedValue,
|
|
40
|
+
isSubmitting,
|
|
41
|
+
error,
|
|
42
|
+
resolvedByUserName,
|
|
43
|
+
onConfirm,
|
|
44
|
+
onDecline
|
|
45
|
+
}: Props = $props();
|
|
36
46
|
|
|
37
47
|
/** Computed label for confirm button */
|
|
38
48
|
const confirmLabel = $derived(config.confirmLabel ?? 'Yes');
|
|
@@ -108,7 +118,9 @@
|
|
|
108
118
|
{#if isResolved}
|
|
109
119
|
<div class="confirmation-prompt__resolved-badge">
|
|
110
120
|
<Icon icon="mdi:check-circle" />
|
|
111
|
-
<span>
|
|
121
|
+
<span>
|
|
122
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
123
|
+
</span>
|
|
112
124
|
</div>
|
|
113
125
|
{/if}
|
|
114
126
|
</div>
|
|
@@ -13,6 +13,8 @@ interface Props {
|
|
|
13
13
|
isSubmitting: boolean;
|
|
14
14
|
/** Error message if submission failed */
|
|
15
15
|
error?: string;
|
|
16
|
+
/** Username of the person who resolved the interrupt */
|
|
17
|
+
resolvedByUserName?: string;
|
|
16
18
|
/** Callback when user confirms (Yes) */
|
|
17
19
|
onConfirm: () => void;
|
|
18
20
|
/** Callback when user declines (No) */
|
|
@@ -26,11 +26,14 @@
|
|
|
26
26
|
isSubmitting: boolean;
|
|
27
27
|
/** Error message if submission failed */
|
|
28
28
|
error?: string;
|
|
29
|
+
/** Username of the person who resolved the interrupt */
|
|
30
|
+
resolvedByUserName?: string;
|
|
29
31
|
/** Callback when user submits form */
|
|
30
32
|
onSubmit: (value: Record<string, unknown>) => void;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
let { config, isResolved, resolvedValue, isSubmitting, error, onSubmit }: Props =
|
|
35
|
+
let { config, isResolved, resolvedValue, isSubmitting, error, resolvedByUserName, onSubmit }: Props =
|
|
36
|
+
$props();
|
|
34
37
|
|
|
35
38
|
/** Local state for form values */
|
|
36
39
|
let formValues = $state<Record<string, unknown>>(config.defaultValues ?? {});
|
|
@@ -119,7 +122,9 @@
|
|
|
119
122
|
{#if isResolved}
|
|
120
123
|
<div class="form-prompt__resolved-badge">
|
|
121
124
|
<Icon icon="mdi:check-circle" />
|
|
122
|
-
<span>
|
|
125
|
+
<span>
|
|
126
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
127
|
+
</span>
|
|
123
128
|
</div>
|
|
124
129
|
{/if}
|
|
125
130
|
</div>
|
|
@@ -13,6 +13,8 @@ interface Props {
|
|
|
13
13
|
isSubmitting: boolean;
|
|
14
14
|
/** Error message if submission failed */
|
|
15
15
|
error?: string;
|
|
16
|
+
/** Username of the person who resolved the interrupt */
|
|
17
|
+
resolvedByUserName?: string;
|
|
16
18
|
/** Callback when user submits form */
|
|
17
19
|
onSubmit: (value: Record<string, unknown>) => void;
|
|
18
20
|
}
|
|
@@ -221,6 +221,16 @@
|
|
|
221
221
|
|
|
222
222
|
// Determine the actual resolved value to pass to prompt components
|
|
223
223
|
const displayResolvedValue = $derived(resolvedValue ?? currentInterrupt.responseValue);
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Extract the username of who resolved the interrupt from metadata.
|
|
227
|
+
* This is provided by the backend when the interrupt is resolved.
|
|
228
|
+
*/
|
|
229
|
+
const resolvedByUserName = $derived(
|
|
230
|
+
typeof currentInterrupt.metadata?.resolvedByUserName === 'string'
|
|
231
|
+
? currentInterrupt.metadata.resolvedByUserName
|
|
232
|
+
: undefined
|
|
233
|
+
);
|
|
224
234
|
</script>
|
|
225
235
|
|
|
226
236
|
<div
|
|
@@ -287,6 +297,7 @@
|
|
|
287
297
|
resolvedValue={displayResolvedValue as boolean | undefined}
|
|
288
298
|
{isSubmitting}
|
|
289
299
|
{error}
|
|
300
|
+
{resolvedByUserName}
|
|
290
301
|
onConfirm={() => handleResolve(true)}
|
|
291
302
|
onDecline={() => handleResolve(false)}
|
|
292
303
|
/>
|
|
@@ -297,6 +308,7 @@
|
|
|
297
308
|
resolvedValue={displayResolvedValue as string | string[] | undefined}
|
|
298
309
|
{isSubmitting}
|
|
299
310
|
{error}
|
|
311
|
+
{resolvedByUserName}
|
|
300
312
|
onSubmit={(value) => handleResolve(value)}
|
|
301
313
|
/>
|
|
302
314
|
{:else if currentInterrupt.type === 'text'}
|
|
@@ -306,6 +318,7 @@
|
|
|
306
318
|
resolvedValue={displayResolvedValue as string | undefined}
|
|
307
319
|
{isSubmitting}
|
|
308
320
|
{error}
|
|
321
|
+
{resolvedByUserName}
|
|
309
322
|
onSubmit={(value) => handleResolve(value)}
|
|
310
323
|
/>
|
|
311
324
|
{:else if currentInterrupt.type === 'form'}
|
|
@@ -315,6 +328,7 @@
|
|
|
315
328
|
resolvedValue={displayResolvedValue as Record<string, unknown> | undefined}
|
|
316
329
|
{isSubmitting}
|
|
317
330
|
{error}
|
|
331
|
+
{resolvedByUserName}
|
|
318
332
|
onSubmit={(value) => handleResolve(value)}
|
|
319
333
|
/>
|
|
320
334
|
{/if}
|
|
@@ -25,11 +25,14 @@
|
|
|
25
25
|
isSubmitting: boolean;
|
|
26
26
|
/** Error message if submission failed */
|
|
27
27
|
error?: string;
|
|
28
|
+
/** Username of the person who resolved the interrupt */
|
|
29
|
+
resolvedByUserName?: string;
|
|
28
30
|
/** Callback when user submits text */
|
|
29
31
|
onSubmit: (value: string) => void;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
let { config, isResolved, resolvedValue, isSubmitting, error, onSubmit }: Props =
|
|
34
|
+
let { config, isResolved, resolvedValue, isSubmitting, error, resolvedByUserName, onSubmit }: Props =
|
|
35
|
+
$props();
|
|
33
36
|
|
|
34
37
|
/** Local state for input value */
|
|
35
38
|
let inputValue = $state(config.defaultValue ?? '');
|
|
@@ -166,7 +169,9 @@
|
|
|
166
169
|
{#if isResolved}
|
|
167
170
|
<div class="text-prompt__resolved-badge">
|
|
168
171
|
<Icon icon="mdi:check-circle" />
|
|
169
|
-
<span>
|
|
172
|
+
<span>
|
|
173
|
+
{resolvedByUserName ? `Response submitted by ${resolvedByUserName}` : 'Response submitted'}
|
|
174
|
+
</span>
|
|
170
175
|
</div>
|
|
171
176
|
{/if}
|
|
172
177
|
</div>
|
|
@@ -13,6 +13,8 @@ interface Props {
|
|
|
13
13
|
isSubmitting: boolean;
|
|
14
14
|
/** Error message if submission failed */
|
|
15
15
|
error?: string;
|
|
16
|
+
/** Username of the person who resolved the interrupt */
|
|
17
|
+
resolvedByUserName?: string;
|
|
16
18
|
/** Callback when user submits text */
|
|
17
19
|
onSubmit: (value: string) => void;
|
|
18
20
|
}
|
|
@@ -264,6 +264,8 @@ export interface InterruptMessageMetadata {
|
|
|
264
264
|
multiple?: boolean;
|
|
265
265
|
min_selections?: number;
|
|
266
266
|
max_selections?: number;
|
|
267
|
+
/** Username of the person who resolved the interrupt */
|
|
268
|
+
resolvedByUserName?: string;
|
|
267
269
|
}
|
|
268
270
|
/**
|
|
269
271
|
* Type guard to check if message metadata indicates an interrupt
|
package/dist/types/interrupt.js
CHANGED
|
@@ -48,7 +48,8 @@ export function extractInterruptMetadata(metadata) {
|
|
|
48
48
|
max_length: metadata.max_length,
|
|
49
49
|
multiple: metadata.multiple,
|
|
50
50
|
min_selections: metadata.min_selections,
|
|
51
|
-
max_selections: metadata.max_selections
|
|
51
|
+
max_selections: metadata.max_selections,
|
|
52
|
+
resolvedByUserName: metadata.resolvedByUserName
|
|
52
53
|
};
|
|
53
54
|
}
|
|
54
55
|
/**
|