From 2ecedcea7c90b9130ff0fb7ecf33f027b34d7ae3 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 19 Jul 2024 16:34:20 +0100 Subject: [PATCH] Stringify non strings when pasting into text cells --- .../src/components/grid/stores/rows.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/frontend-core/src/components/grid/stores/rows.js b/packages/frontend-core/src/components/grid/stores/rows.js index bfd91fb237..fb7a487c8e 100644 --- a/packages/frontend-core/src/components/grid/stores/rows.js +++ b/packages/frontend-core/src/components/grid/stores/rows.js @@ -5,6 +5,7 @@ import { getCellID, parseCellID } from "../lib/utils" import { tick } from "svelte" import { Helpers } from "@budibase/bbui" import { sleep } from "../../../utils/utils" +import { FieldType } from "@budibase/types" export const createStores = () => { const rows = writable([]) @@ -421,8 +422,21 @@ export const createActions = context => { // valid pending change was made or not const stashRowChanges = (rowId, changes) => { const $rowLookupMap = get(rowLookupMap) + const $columnLookupMap = get(columnLookupMap) const row = $rowLookupMap[rowId] + // Coerce some values into the correct types + for (let column of Object.keys(changes || {})) { + const type = $columnLookupMap[column]?.schema?.type + + // Stringify objects + if (type === FieldType.STRING || type == FieldType.LONGFORM) { + if (changes[column] != null && typeof changes[column] !== "string") { + changes[column] = JSON.stringify(changes[column]) + } + } + } + // Check this is a valid change if (!row || !changesAreValid(row, changes)) { return false