1
0
Fork 0
mirror of synced 2024-06-14 00:14:39 +12:00
budibase/packages/client/src/components/app/forms/CodeScannerField.svelte

48 lines
911 B
Svelte

<script>
import Field from "./Field.svelte"
import CodeScanner from "./CodeScanner.svelte"
export let field
export let label
export let type = "barcodeqr"
export let disabled = false
export let validation
export let defaultValue = ""
export let onChange
export let allowManualEntry
export let scanButtonText
let fieldState
let fieldApi
$: scanText = scanButtonText || "Scan code"
const handleUpdate = e => {
const changed = fieldApi.setValue(e.detail)
if (onChange && changed) {
onChange({ value: e.detail })
}
}
</script>
<Field
{label}
{field}
{disabled}
{validation}
{defaultValue}
{type}
bind:fieldState
bind:fieldApi
>
{#if fieldState}
<CodeScanner
value={fieldState.value}
on:change={handleUpdate}
disabled={fieldState.disabled}
{allowManualEntry}
scanButtonText={scanText}
/>
{/if}
</Field>