1
0
Fork 0
mirror of synced 2024-06-01 10:09:48 +12:00
budibase/packages/frontend-core/src/components/grid/cells/BooleanCell.svelte
2023-04-20 08:17:07 +01:00

45 lines
754 B
Svelte

<script>
import { onMount } from "svelte"
import { Checkbox } from "@budibase/bbui"
export let value
export let focused = false
export let onChange
export let readonly = false
export let api
$: editable = focused && !readonly
const handleChange = e => {
onChange(e.detail)
}
const onKeyDown = e => {
if (e.key === "Enter") {
onChange(!value)
return true
}
return false
}
onMount(() => {
api = {
onKeyDown,
}
})
</script>
<div class="boolean-cell" class:editable>
<Checkbox {value} on:change={handleChange} />
</div>
<style>
.boolean-cell {
padding: 2px var(--cell-padding);
pointer-events: none;
}
.boolean-cell.editable {
pointer-events: all;
}
</style>