1
0
Fork 0
mirror of synced 2024-06-26 10:00:41 +12:00
budibase/packages/builder/src/components/database/ModelDataTable/modals/RecordFieldControl.svelte

52 lines
1 KiB
Svelte
Raw Normal View History

<script>
export let type = "text"
export let value = ""
export let label
export let errors = []
export let options = []
2020-05-07 21:53:34 +12:00
let checked = type === "checkbox" ? value : false
const determineClassName = type => {
if (type === "checkbox") return "uk-checkbox"
if (type === "select") return "uk-select"
return "uk-input"
}
const handleInput = event => {
if (event.target.type === "checkbox") {
2020-05-07 21:53:34 +12:00
value = event.target.checked
return
}
if (event.target.type === "number") {
2020-05-07 21:53:34 +12:00
value = parseInt(event.target.value)
return
}
2020-05-07 21:53:34 +12:00
value = event.target.value
}
</script>
<label>{label}</label>
{#if type === "select"}
<select
class={determineClassName(type)}
bind:value={value}
class:uk-form-danger={errors.length > 0} >
{#each options as opt}
<option value={opt}>{ opt }</option>
{/each}
</select>
{:else}
<input
class={determineClassName(type)}
class:uk-form-danger={errors.length > 0}
{checked}
{type}
{value}
on:input={handleInput}
on:change={handleInput} />
{/if}