diff --git a/.github/workflows/close-featurebranch.yml b/.github/workflows/close-featurebranch.yml
new file mode 100644
index 0000000000..0ec3b43598
--- /dev/null
+++ b/.github/workflows/close-featurebranch.yml
@@ -0,0 +1,21 @@
+name: close-featurebranch
+
+on:
+ pull_request:
+ types: [closed]
+ branches:
+ - develop
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: passeidireto/trigger-external-workflow-action@main
+ env:
+ PAYLOAD_BRANCH: ${{ github.head_ref }}
+ PAYLOAD_PR_NUMBER: ${{ github.ref }}
+ with:
+ repository: budibase/budibase-deploys
+ event: featurebranch-qa-close
+ github_pat: ${{ secrets.GH_ACCESS_TOKEN }}
diff --git a/lerna.json b/lerna.json
index 92271723f8..ef384f4272 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.10.12-alpha.13",
+ "version": "2.10.12-alpha.16",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/bbui/src/Form/Core/Multiselect.svelte b/packages/bbui/src/Form/Core/Multiselect.svelte
index 8816da33c4..8d72dd0652 100644
--- a/packages/bbui/src/Form/Core/Multiselect.svelte
+++ b/packages/bbui/src/Form/Core/Multiselect.svelte
@@ -14,12 +14,12 @@
export let autocomplete = false
export let sort = false
export let autoWidth = false
- export let fetchTerm = null
- export let useFetch = false
+ export let searchTerm = null
export let customPopoverHeight
export let customPopoverOffsetBelow
export let customPopoverMaxHeight
export let open = false
+ export let loading
const dispatch = createEventDispatcher()
@@ -82,6 +82,7 @@
diff --git a/packages/bbui/src/Form/Core/Picker.svelte b/packages/bbui/src/Form/Core/Picker.svelte
index 9b90c1a865..aa06d5f748 100644
--- a/packages/bbui/src/Form/Core/Picker.svelte
+++ b/packages/bbui/src/Form/Core/Picker.svelte
@@ -2,7 +2,7 @@
import "@spectrum-css/picker/dist/index-vars.css"
import "@spectrum-css/popover/dist/index-vars.css"
import "@spectrum-css/menu/dist/index-vars.css"
- import { createEventDispatcher } from "svelte"
+ import { createEventDispatcher, onDestroy } from "svelte"
import clickOutside from "../../Actions/click_outside"
import Search from "./Search.svelte"
import Icon from "../../Icon/Icon.svelte"
@@ -10,6 +10,7 @@
import Popover from "../../Popover/Popover.svelte"
import Tags from "../../Tags/Tags.svelte"
import Tag from "../../Tags/Tag.svelte"
+ import ProgressCircle from "../../ProgressCircle/ProgressCircle.svelte"
export let id = null
export let disabled = false
@@ -35,19 +36,20 @@
export let autoWidth = false
export let autocomplete = false
export let sort = false
- export let fetchTerm = null
- export let useFetch = false
+ export let searchTerm = null
export let customPopoverHeight
export let customPopoverOffsetBelow
export let customPopoverMaxHeight
export let align = "left"
export let footer = null
export let customAnchor = null
+ export let loading
+
const dispatch = createEventDispatcher()
- let searchTerm = null
let button
let popover
+ let component
$: sortedOptions = getSortedOptions(options, getOptionLabel, sort)
$: filteredOptions = getFilteredOptions(
@@ -82,7 +84,7 @@
}
const getFilteredOptions = (options, term, getLabel) => {
- if (autocomplete && term && !fetchTerm) {
+ if (autocomplete && term) {
const lowerCaseTerm = term.toLowerCase()
return options.filter(option => {
return `${getLabel(option)}`.toLowerCase().includes(lowerCaseTerm)
@@ -90,6 +92,20 @@
}
return options
}
+
+ const onScroll = e => {
+ const scrollPxThreshold = 100
+ const scrollPositionFromBottom =
+ e.target.scrollHeight - e.target.clientHeight - e.target.scrollTop
+ if (scrollPositionFromBottom < scrollPxThreshold) {
+ dispatch("loadMore")
+ }
+ }
+
+ $: component?.addEventListener("scroll", onScroll)
+ onDestroy(() => {
+ component?.removeEventListener("scroll", null)
+ })