Broken state, saving progress.
This commit is contained in:
parent
72785cd342
commit
25bf7272ed
|
@ -1,4 +1,4 @@
|
||||||
<script>
|
<script lang="ts">
|
||||||
import { CoreSelect, CoreMultiselect } from "@budibase/bbui"
|
import { CoreSelect, CoreMultiselect } from "@budibase/bbui"
|
||||||
import { FieldType } from "@budibase/types"
|
import { FieldType } from "@budibase/types"
|
||||||
import { fetchData, Utils } from "@budibase/frontend-core"
|
import { fetchData, Utils } from "@budibase/frontend-core"
|
||||||
|
@ -7,21 +7,21 @@
|
||||||
|
|
||||||
const { API } = getContext("sdk")
|
const { API } = getContext("sdk")
|
||||||
|
|
||||||
export let field
|
export let field: string | undefined = undefined
|
||||||
export let label
|
export let label: string | undefined = undefined
|
||||||
export let placeholder
|
export let placeholder: string | undefined = undefined
|
||||||
export let disabled = false
|
export let disabled: boolean = false
|
||||||
export let readonly = false
|
export let readonly: boolean = false
|
||||||
export let validation
|
export let validation: any
|
||||||
export let autocomplete = true
|
export let autocomplete: boolean = true
|
||||||
export let defaultValue
|
export let defaultValue: string | undefined = undefined
|
||||||
export let onChange
|
export let onChange: any
|
||||||
export let filter
|
export let filter:
|
||||||
export let datasourceType = "table"
|
export let datasourceType: string = "table"
|
||||||
export let primaryDisplay
|
export let primaryDisplay: string | undefined = undefined
|
||||||
export let span
|
export let span: string | undefined = undefined
|
||||||
export let helpText = null
|
export let helpText: string | undefined = undefined
|
||||||
export let type = FieldType.LINK
|
export let type: FieldType.LINK | FieldType.BB_REFERENCE = FieldType.LINK
|
||||||
|
|
||||||
let fieldState
|
let fieldState
|
||||||
let fieldApi
|
let fieldApi
|
||||||
|
@ -54,6 +54,7 @@
|
||||||
$: primaryDisplay = primaryDisplay || tableDefinition?.primaryDisplay
|
$: primaryDisplay = primaryDisplay || tableDefinition?.primaryDisplay
|
||||||
|
|
||||||
let optionsObj
|
let optionsObj
|
||||||
|
const debouncedFetchRows = Utils.debounce(fetchRows, 250)
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
if (primaryDisplay && fieldState && !optionsObj) {
|
if (primaryDisplay && fieldState && !optionsObj) {
|
||||||
|
@ -109,7 +110,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$: forceFetchRows(filter)
|
$: forceFetchRows(filter, defaultValue)
|
||||||
$: debouncedFetchRows(searchTerm, primaryDisplay, defaultValue)
|
$: debouncedFetchRows(searchTerm, primaryDisplay, defaultValue)
|
||||||
|
|
||||||
const forceFetchRows = async () => {
|
const forceFetchRows = async () => {
|
||||||
|
@ -119,7 +120,7 @@
|
||||||
selectedValue = []
|
selectedValue = []
|
||||||
debouncedFetchRows(searchTerm, primaryDisplay, defaultValue)
|
debouncedFetchRows(searchTerm, primaryDisplay, defaultValue)
|
||||||
}
|
}
|
||||||
const fetchRows = async (searchTerm, primaryDisplay, defaultVal) => {
|
async function fetchRows(searchTerm, primaryDisplay, defaultVal) {
|
||||||
const allRowsFetched =
|
const allRowsFetched =
|
||||||
$fetch.loaded &&
|
$fetch.loaded &&
|
||||||
!Object.keys($fetch.query?.string || {}).length &&
|
!Object.keys($fetch.query?.string || {}).length &&
|
||||||
|
@ -132,6 +133,9 @@
|
||||||
if (defaultVal && !Array.isArray(defaultVal)) {
|
if (defaultVal && !Array.isArray(defaultVal)) {
|
||||||
defaultVal = defaultVal.split(",")
|
defaultVal = defaultVal.split(",")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fetchMissing = (missingIds: string[])
|
||||||
|
|
||||||
if (defaultVal && optionsObj && defaultVal.some(val => !optionsObj[val])) {
|
if (defaultVal && optionsObj && defaultVal.some(val => !optionsObj[val])) {
|
||||||
await fetch.update({
|
await fetch.update({
|
||||||
query: { oneOf: { _id: defaultVal } },
|
query: { oneOf: { _id: defaultVal } },
|
||||||
|
@ -152,7 +156,6 @@
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const debouncedFetchRows = Utils.debounce(fetchRows, 250)
|
|
||||||
|
|
||||||
const flatten = values => {
|
const flatten = values => {
|
||||||
if (!values) {
|
if (!values) {
|
||||||
|
|
Loading…
Reference in New Issue