FIX: Error when deleting selected rows that have attachment (#13006)

* Deprecate selectedRowIds

* Delete selected rows table

* Add selectedRows to table block context

* update account-portal

* update account-portal

* Lowercase deprecated
This commit is contained in:
melohagan 2024-02-13 16:44:21 +00:00 committed by GitHub
parent e171873b10
commit f8073c3f5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 95 additions and 61 deletions

View File

@ -617,6 +617,7 @@ const getDeviceBindings = () => {
/**
* Gets all selected rows bindings for tables in the current asset.
* TODO: remove in future because we don't need a separate store for this
* DEPRECATED
*/
const getSelectedRowsBindings = asset => {
let bindings = []
@ -632,8 +633,8 @@ const getSelectedRowsBindings = asset => {
runtimeBinding: `${safeState}.${makePropSafe(table._id)}.${makePropSafe(
"selectedRows"
)}`,
readableBinding: `${table._instanceName}.Selected rows`,
category: "Selected rows",
readableBinding: `${table._instanceName}.Selected Row IDs (deprecated)`,
category: "Selected Row IDs (deprecated)",
icon: "ViewRow",
display: { name: table._instanceName },
}))
@ -649,8 +650,8 @@ const getSelectedRowsBindings = asset => {
runtimeBinding: `${safeState}.${makePropSafe(
block._id + "-table"
)}.${makePropSafe("selectedRows")}`,
readableBinding: `${block._instanceName}.Selected rows`,
category: "Selected rows",
readableBinding: `${block._instanceName}.Selected Row IDs (deprecated)`,
category: "Selected Row IDs (deprecated)",
icon: "ViewRow",
display: { name: block._instanceName },
}))

View File

@ -4719,10 +4719,22 @@
]
}
],
"context": {
"context": [
{
"type": "schema",
"scope": "local"
},
{
"type": "static",
"values": [
{
"label": "Selected Rows",
"key": "selectedRows",
"type": "array"
}
]
}
]
},
"daterangepicker": {
"name": "Date Range",
@ -5610,7 +5622,8 @@
]
}
],
"context": {
"context": [
{
"type": "static",
"suffix": "provider",
"values": [
@ -5640,7 +5653,19 @@
"type": "number"
}
]
},
{
"type": "static",
"suffix": "table",
"values": [
{
"label": "Selected Rows",
"key": "selectedRows",
"type": "array"
}
]
}
]
},
"cardsblock": {
"block": true,

View File

@ -3,6 +3,7 @@
import { Table } from "@budibase/bbui"
import SlotRenderer from "./SlotRenderer.svelte"
import { canBeSortColumn } from "@budibase/shared-core"
import Provider from "../../context/Provider.svelte"
export let dataProvider
export let columns
@ -55,6 +56,11 @@
}
}
// Build our data context
$: dataContext = {
selectedRows,
}
const getFields = (
schema,
customColumns,
@ -156,6 +162,7 @@
</script>
<div use:styleable={$component.styles} class={size}>
<Provider data={dataContext}>
<Table
{data}
{schema}
@ -177,6 +184,7 @@
>
<slot />
</Table>
</Provider>
{#if allowSelectRows && selectedRows.length}
<div class="row-count">
{selectedRows.length} row{selectedRows.length === 1 ? "" : "s"} selected

View File

@ -5,7 +5,7 @@ const createRowSelectionStore = () => {
function updateSelection(componentId, tableId, selectedRows) {
store.update(state => {
state[componentId] = { tableId: tableId, selectedRows: selectedRows }
state[componentId] = { tableId, selectedRows }
return state
})
}