Udpate sort button to be a detail popover

This commit is contained in:
Andrew Kingston 2024-10-28 14:05:02 +00:00
parent 18130729b2
commit 4979cce132
No known key found for this signature in database
1 changed files with 32 additions and 47 deletions

View File

@ -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>