From 60bf682449ae839c4c65d8bc2ed4b5929113b02f Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Mon, 26 Aug 2024 09:58:09 +0200 Subject: [PATCH] multiline dialog fixes --- packages/tools/src/stringTools.ts | 22 ++++++++++++ packages/web/src/datagrid/DataGridCore.svelte | 16 ++++++--- packages/web/src/datagrid/InplaceInput.svelte | 3 +- packages/web/src/formview/FormView.svelte | 7 ++-- .../web/src/modals/EditCellDataModal.svelte | 35 ++++--------------- 5 files changed, 47 insertions(+), 36 deletions(-) diff --git a/packages/tools/src/stringTools.ts b/packages/tools/src/stringTools.ts index f2eeacff9..7f2a47015 100644 --- a/packages/tools/src/stringTools.ts +++ b/packages/tools/src/stringTools.ts @@ -259,6 +259,28 @@ export function safeJsonParse(json, defaultValue?, logError = false) { } } +export function shouldOpenMultilineDialog(value) { + if (_isString(value)) { + if (value.includes('\n')) { + return true; + } + const parsed = safeJsonParse(value); + if (parsed && (_isPlainObject(parsed) || _isArray(parsed))) { + return true; + } + } + if (value?.$oid) { + return false; + } + if (value?.$date) { + return false; + } + if (_isPlainObject(value) || _isArray(value)) { + return true; + } + return false; +} + export function isJsonLikeLongString(value) { return _isString(value) && value.length > 100 && value.match(/^\s*\{.*\}\s*$|^\s*\[.*\]\s*$/); } diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index c8a637957..d3034d9dd 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -343,7 +343,13 @@ -