budibase/packages/materialdesign-components/src/Datatable/DatatableRow.svelte

31 lines
599 B
Svelte
Raw Normal View History

2020-02-17 18:01:57 +01:00
<script>
2020-02-25 16:21:23 +01:00
import { getContext } from "svelte"
2020-02-25 16:21:23 +01:00
export let onSelect = () => {}
export let isHeader = false
2020-02-20 18:06:50 +01:00
export let _bb
2020-02-25 16:21:23 +01:00
let row = null
let selected = false
2020-02-17 18:01:57 +01:00
2020-02-25 16:21:23 +01:00
const cb = _bb.getContext("BBMD:data-table:cb")
2020-02-17 18:01:57 +01:00
2020-02-25 16:21:23 +01:00
let elementName = isHeader ? "header-row" : "row"
let modifiers = {}
2020-02-17 18:01:57 +01:00
2020-02-25 16:21:23 +01:00
$: modifiers = { selected }
$: props = { modifiers }
$: rowClass = cb.build({ elementName, props })
2020-02-20 18:06:50 +01:00
$: row && _bb.attachChildren(row)
2020-02-25 16:21:23 +01:00
function rowSelected() {
2020-02-25 16:21:23 +01:00
selected = !selected
onSelect()
}
2020-02-17 18:01:57 +01:00
</script>
<tr bind:this={row} class={rowClass} on:click={rowSelected}>
2020-02-17 18:01:57 +01:00
<slot />
</tr>