|
9 | 9 | } from '@appwrite.io/pink-svelte';
|
10 | 10 | import type { MigrationFormData } from '$lib/stores/migration';
|
11 | 11 | import { Button } from '$lib/elements/forms';
|
| 12 | + import { createEventDispatcher } from 'svelte'; |
12 | 13 |
|
13 | 14 | export let error: boolean = false;
|
14 | 15 | export let groupKey: keyof MigrationFormData;
|
15 | 16 | export let formGroup: MigrationFormData[typeof groupKey];
|
16 | 17 | export let reportValue: string | number | undefined = undefined;
|
17 | 18 |
|
| 19 | + const dispatch = createEventDispatcher(); |
| 20 | +
|
18 | 21 | const labelMap = {
|
19 | 22 | users: { root: 'Users', teams: 'Include teams' },
|
20 | 23 | databases: { root: 'Databases', documents: 'Include documents' },
|
|
61 | 64 |
|
62 | 65 | function onParentChange(event: CustomEvent<boolean | 'indeterminate'>) {
|
63 | 66 | if (event.detail === 'indeterminate') return;
|
| 67 | + const updated = { ...formGroup }; |
64 | 68 | for (const key of Object.keys(formGroup)) {
|
65 |
| - formGroup[key] = event.detail; |
| 69 | + updated[key] = event.detail; |
66 | 70 | }
|
| 71 | +
|
| 72 | + dispatch('updateFormGroup', updated); |
67 | 73 | }
|
68 | 74 |
|
69 | 75 | $: isLoading = !error;
|
|
74 | 80 | <Button extraCompact on:click={() => (formGroup.root = !formGroup.root)}>
|
75 | 81 | <Layout.Stack direction="row" gap="s" alignItems="center">
|
76 | 82 | <Layout.Stack inline direction="row" gap="l" alignItems="flex-start">
|
77 |
| - <Selector.Checkbox size="s" bind:checked={formGroup.root} /> |
| 83 | + <Selector.Checkbox |
| 84 | + size="s" |
| 85 | + bind:checked={formGroup.root} |
| 86 | + on:change={(event) => { |
| 87 | + const updated = { ...formGroup, root: event.detail }; |
| 88 | + dispatch('updateFormGroup', updated); |
| 89 | + }} /> |
78 | 90 |
|
79 | 91 | <Typography.Text variant="m-500" color="--fgcolor-neutral-primary">
|
80 | 92 | {labelMap[groupKey]?.root ?? groupKey}
|
|
0 commit comments