Skip to content

Commit cda70bb

Browse files
committed
fix: fix button field optiong
1 parent ec939b0 commit cda70bb

20 files changed

+97
-20
lines changed

apps/frontend/src/lib/components/blocks/field-control/attachment-control.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import { selectedAttachment } from "$lib/store/attachment.store"
88
99
export let field: AttachmentField
10+
export let onValueChange: (value: IAttachmentFieldValue) => void
1011
1112
export let value: IAttachmentFieldValue = []
1213
export let readonly = false
@@ -68,6 +69,7 @@
6869
signedUrl,
6970
},
7071
]
72+
onValueChange?.(value)
7173
} catch (error) {
7274
console.error(error)
7375
} finally {

apps/frontend/src/lib/components/blocks/field-control/checkbox-control.svelte

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
44
export let readonly = false
55
export let value: boolean
6+
export let onValueChange: (value: boolean) => void
67
</script>
78

89
<div class="flex h-full items-center">
9-
<Switch {...$$restProps} disabled={readonly} bind:checked={value} />
10+
<Switch
11+
{...$$restProps}
12+
disabled={readonly}
13+
bind:checked={value}
14+
on:change={(e) => onValueChange?.(e.target.checked)}
15+
/>
1016
</div>

apps/frontend/src/lib/components/blocks/field-control/currency-control.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
44
export let readonly = false
55
export let value: number
6+
export let onValueChange: (value: number) => void
67
const onInput = (event: Event) => {
78
value = +(event.target as HTMLInputElement).value
9+
onValueChange?.(value)
810
}
911
</script>
1012

@@ -14,7 +16,6 @@
1416
{value}
1517
on:input={onInput}
1618
type="number"
17-
on:change
1819
step={0.01}
1920
{...$$restProps}
2021
/>

apps/frontend/src/lib/components/blocks/field-control/date-control.svelte

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
export let readonly = false
1515
export let disabled = false
1616
export let field: DateField
17+
export let onValueChange: (value: string | Date | undefined | null) => void
1718
1819
$: formatter = field.formatter
1920
$: includeTime = field.includeTime
@@ -36,6 +37,7 @@
3637
if (!includeTime) {
3738
open = false
3839
}
40+
onValueChange?.(value)
3941
}
4042
</script>
4143

@@ -89,6 +91,7 @@
8991
onValueChange={(v) => {
9092
if (!value) return
9193
value = new Date(new Date(value).setHours(v.hour, v.minute, 0, 0)).toISOString()
94+
onValueChange?.(value)
9295
}}
9396
/>
9497
</div>
@@ -108,6 +111,7 @@
108111
on:click={() => {
109112
if (value) {
110113
value = null
114+
onValueChange?.(value)
111115
}
112116
open = false
113117
}}

apps/frontend/src/lib/components/blocks/field-control/duration-control.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
55
export let readonly = false
66
export let value: number
7+
export let onValueChange: (value: number) => void
78
</script>
89

910
<DurationInput
@@ -14,4 +15,5 @@
1415
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
1516
$$restProps.class,
1617
)}
18+
on:change={(e) => onValueChange?.(e.target.value)}
1719
/>

apps/frontend/src/lib/components/blocks/field-control/email-control.svelte

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
44
export let value: string
55
export let readonly = false
6+
export let onValueChange: (value: string) => void
67
</script>
78

8-
<Input bind:value {...$$restProps} type="email" on:change disabled={readonly} />
9+
<Input
10+
bind:value
11+
{...$$restProps}
12+
type="email"
13+
on:change
14+
disabled={readonly}
15+
on:input={(e) => onValueChange?.(e.target.value)}
16+
/>

apps/frontend/src/lib/components/blocks/field-control/field-control.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
export let r: Writable<string | null>
3333
export let value: any
3434
export let displayValue: any
35+
export let onValueChange: (value: any) => void
3536
3637
function handleValue() {
3738
const { success } = field.valueSchema.safeParse(value)
@@ -73,7 +74,6 @@
7374
<svelte:component
7475
this={map[field.type]}
7576
{readonly}
76-
on:change
7777
{...$$restProps}
7878
bind:value
7979
{displayValue}
@@ -82,4 +82,5 @@
8282
{recordId}
8383
{record}
8484
{r}
85+
{onValueChange}
8586
/>

apps/frontend/src/lib/components/blocks/field-control/json-control.svelte

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
export let value: Json | undefined = undefined
55
export let field: JsonField
66
export let readonly = false
7+
export let onValueChange: (value: Json) => void
78
89
let content: Content = {
910
text: "{}",
@@ -12,8 +13,11 @@
1213
1314
const handleChange: OnChange = (updatedContent, previousContent, { contentErrors, patchResult }) => {
1415
content = updatedContent
15-
// @ts-ignore
16-
if (!contentErrors) value = JSON.parse(content.text)
16+
if (!contentErrors) {
17+
// @ts-ignore
18+
value = JSON.parse(content.text)
19+
onValueChange?.(value)
20+
}
1721
}
1822
</script>
1923

apps/frontend/src/lib/components/blocks/field-control/long-text-control.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
export let field: LongTextField
77
export let value: string
88
export let readonly = false
9+
export let onValueChange: (value: string) => void
910
</script>
1011

1112
{#if field.allowRichText}
12-
<Tiptap {readonly} bind:value />
13+
<Tiptap {readonly} bind:value {onValueChange} />
1314
{:else}
14-
<Textarea rows={5} bind:value {...$$restProps} on:change disabled={readonly} />
15+
<Textarea rows={5} bind:value {...$$restProps} disabled={readonly} on:input={(e) => onValueChange?.(e.target.value)} />
1516
{/if}

apps/frontend/src/lib/components/blocks/field-control/number-control.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
44
export let readonly = false
55
export let value: number
6+
export let onValueChange: (value: number) => void
67
const onInput = (event: Event) => {
78
value = +(event.target as HTMLInputElement).value
9+
onValueChange?.(value)
810
}
911
</script>
1012

0 commit comments

Comments
 (0)