Udpate sort button to be a detail popover
This commit is contained in:
parent
18130729b2
commit
4979cce132
|
@ -1,12 +1,12 @@
|
||||||
<script>
|
<script>
|
||||||
import { getContext } from "svelte"
|
import { getContext } from "svelte"
|
||||||
import { ActionButton, Popover, Select } from "@budibase/bbui"
|
import { ActionButton, Select } from "@budibase/bbui"
|
||||||
import { canBeSortColumn } from "@budibase/frontend-core"
|
import { canBeSortColumn } from "@budibase/frontend-core"
|
||||||
|
import DetailPopover from "components/common/DetailPopover.svelte"
|
||||||
|
|
||||||
const { sort, columns } = getContext("grid")
|
const { sort, columns } = getContext("grid")
|
||||||
|
|
||||||
let open = false
|
let popover
|
||||||
let anchor
|
|
||||||
|
|
||||||
$: columnOptions = $columns
|
$: columnOptions = $columns
|
||||||
.filter(col => canBeSortColumn(col.schema))
|
.filter(col => canBeSortColumn(col.schema))
|
||||||
|
@ -45,21 +45,19 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div bind:this={anchor}>
|
<DetailPopover bind:this={popover} title="Sorting parameters">
|
||||||
|
<svelte:fragment slot="anchor" let:open>
|
||||||
<ActionButton
|
<ActionButton
|
||||||
icon="SortOrderDown"
|
icon="SortOrderDown"
|
||||||
quiet
|
quiet
|
||||||
size="M"
|
size="M"
|
||||||
on:click={() => (open = !open)}
|
on:click={popover?.open}
|
||||||
selected={open}
|
selected={open}
|
||||||
disabled={!columnOptions.length}
|
disabled={!columnOptions.length}
|
||||||
>
|
>
|
||||||
Sort
|
Sort
|
||||||
</ActionButton>
|
</ActionButton>
|
||||||
</div>
|
</svelte:fragment>
|
||||||
|
|
||||||
<Popover bind:open {anchor} align="left">
|
|
||||||
<div class="content">
|
|
||||||
<Select
|
<Select
|
||||||
placeholder="Default"
|
placeholder="Default"
|
||||||
value={$sort.column}
|
value={$sort.column}
|
||||||
|
@ -78,17 +76,4 @@
|
||||||
label="Order"
|
label="Order"
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</DetailPopover>
|
||||||
</Popover>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.content {
|
|
||||||
padding: 6px 12px 12px 12px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
.content :global(.spectrum-Picker) {
|
|
||||||
width: 140px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
Loading…
Reference in New Issue