Update usages of queryUI and ensure processSearchFilters isn't called with nullish values

This commit is contained in:
Andrew Kingston 2024-10-23 15:06:57 +01:00
parent 77bb3cf4da
commit cb4b7988c5
No known key found for this signature in database
6 changed files with 10 additions and 45 deletions

View File

@ -798,7 +798,7 @@
break
}
}
return utils.processSearchFilters(filters)
return utils.processSearchFilters(filters || [])
}
function saveFilters(key) {

View File

@ -17,7 +17,7 @@
let drawer
$: localFilters = utils.processSearchFilters(filters)
$: localFilters = utils.processSearchFilters(filters || [])
$: schemaFields = search.getFields(
$tables.list,
@ -61,7 +61,7 @@
title="Filtering"
on:drawerHide
on:drawerShow={() => {
localFilters = utils.processSearchFilters(filters)
localFilters = utils.processSearchFilters(filters || [])
}}
forceModal
>

View File

@ -7,6 +7,8 @@
const onFilter = e => {
filter.set(e.detail || [])
}
$: console.log($filter)
</script>
{#key $datasource}

View File

@ -210,7 +210,7 @@ export class ComponentStore extends BudiStore {
if (isLegacy) {
const processedSetting = utils.processSearchFilters(
enrichedComponent[setting.key]
enrichedComponent[setting.key] || []
)
enrichedComponent[setting.key] = processedSetting
migrated = true

View File

@ -3,29 +3,6 @@ import { tables } from "./tables"
import { API } from "api"
import { dataFilters } from "@budibase/shared-core"
function convertToSearchFilters(view) {
// convert from UISearchFilter type
if (view?.query) {
return {
...view,
queryUI: view.query,
query: dataFilters.buildQuery(view.query),
}
}
return view
}
function convertToUISearchFilter(view) {
if (view?.queryUI) {
return {
...view,
query: view.queryUI,
queryUI: undefined,
}
}
return view
}
export function createViewsV2Store() {
const store = writable({
selectedViewId: null,
@ -36,7 +13,7 @@ export function createViewsV2Store() {
const views = Object.values(table?.views || {}).filter(view => {
return view.version === 2
})
list = list.concat(views.map(view => convertToUISearchFilter(view)))
list = list.concat(views)
})
return {
...$store,
@ -58,7 +35,6 @@ export function createViewsV2Store() {
}
const create = async view => {
view = convertToSearchFilters(view)
const savedViewResponse = await API.viewV2.create(view)
const savedView = savedViewResponse.data
replaceView(savedView.id, savedView)
@ -66,7 +42,6 @@ export function createViewsV2Store() {
}
const save = async view => {
view = convertToSearchFilters(view)
const res = await API.viewV2.update(view)
const savedView = res?.data
replaceView(view.id, savedView)

View File

@ -1,25 +1,13 @@
import { get } from "svelte/store"
import { dataFilters } from "@budibase/shared-core"
function convertToSearchFilters(view) {
// convert from SearchFilterGroup type
if (view?.query) {
return {
...view,
queryUI: view.query,
query: dataFilters.buildQuery(view.query),
}
}
return view
}
const SuppressErrors = true
export const createActions = context => {
const { API, datasource, columns } = context
const saveDefinition = async newDefinition => {
await API.viewV2.update(convertToSearchFilters(newDefinition))
await API.viewV2.update(newDefinition)
}
const saveRow = async row => {
@ -138,7 +126,7 @@ export const initialise = context => {
}
// Only override filter state if we don't have an initial filter
if (!get(initialFilter)) {
filter.set($definition.queryUI || $definition.query)
filter.set($definition.queryUI)
}
})
)
@ -197,7 +185,7 @@ export const initialise = context => {
if (JSON.stringify($filter) !== JSON.stringify($view.queryUI)) {
await datasource.actions.saveDefinition({
...$view,
query: $filter,
queryUI: $filter,
})
// Refresh data since view definition changed