From 125febdd5a25eccb2315b877c602c8baca84396e Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 14 Mar 2023 09:44:21 +0000 Subject: [PATCH] Add new long form text cell --- .../components/sheet/KeyboardManager.svelte | 25 +++-- .../sheet/SheetScrollWrapper.svelte | 1 + .../components/sheet/cells/BlankCell.svelte | 1 + .../components/sheet/cells/HeaderCell.svelte | 6 +- .../sheet/cells/LongFormCell.svelte | 101 ++++++++++++++++++ .../components/sheet/cells/OptionsCell.svelte | 9 +- .../src/components/sheet/renderers.js | 9 ++ .../src/components/sheet/utils.js | 10 +- 8 files changed, 144 insertions(+), 18 deletions(-) create mode 100644 packages/frontend-core/src/components/sheet/cells/BlankCell.svelte create mode 100644 packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte diff --git a/packages/frontend-core/src/components/sheet/KeyboardManager.svelte b/packages/frontend-core/src/components/sheet/KeyboardManager.svelte index bb3e9410e4..684ce81fe0 100644 --- a/packages/frontend-core/src/components/sheet/KeyboardManager.svelte +++ b/packages/frontend-core/src/components/sheet/KeyboardManager.svelte @@ -2,23 +2,36 @@ import { getContext, onMount } from "svelte" import { get } from "svelte/store" - const { rows, rand, selectedCellId, columns, selectedCellRow, stickyColumn, selectedCellAPI } = - getContext("sheet") + const { + rows, + selectedCellId, + columns, + selectedCellRow, + stickyColumn, + selectedCellAPI, + } = getContext("sheet") const handleKeyDown = e => { const api = get(selectedCellAPI) + if (!api) { + return + } - // Always capture escape and blur any selected cell + // Always intercept certain key presses if (e.key === "Escape") { - api?.blur() + api.blur() + } else if (e.key === "Tab") { + api.blur() + changeSelectedColumn(1) } // Pass the key event to the selected cell and let it decide whether to // capture it or not - const handled = api?.onKeyDown?.(e) + const handled = api.onKeyDown?.(e) if (handled) { return } + e.preventDefault() // Handle the key ourselves switch (e.key) { @@ -39,7 +52,7 @@ break case "Enter": focusSelectedCell() - break; + break } } diff --git a/packages/frontend-core/src/components/sheet/SheetScrollWrapper.svelte b/packages/frontend-core/src/components/sheet/SheetScrollWrapper.svelte index ab39b01fa0..256feb9f0a 100644 --- a/packages/frontend-core/src/components/sheet/SheetScrollWrapper.svelte +++ b/packages/frontend-core/src/components/sheet/SheetScrollWrapper.svelte @@ -46,6 +46,7 @@ // Handles a wheel even and updates the scroll offsets const handleWheel = e => { + console.log("wheel scrol!") e.preventDefault() const modifier = e.ctrlKey || e.metaKey let x = modifier ? e.deltaY : e.deltaX diff --git a/packages/frontend-core/src/components/sheet/cells/BlankCell.svelte b/packages/frontend-core/src/components/sheet/cells/BlankCell.svelte new file mode 100644 index 0000000000..2a2a65044f --- /dev/null +++ b/packages/frontend-core/src/components/sheet/cells/BlankCell.svelte @@ -0,0 +1 @@ +
[MISSING]
diff --git a/packages/frontend-core/src/components/sheet/cells/HeaderCell.svelte b/packages/frontend-core/src/components/sheet/cells/HeaderCell.svelte index 155a287df2..81adafd6ed 100644 --- a/packages/frontend-core/src/components/sheet/cells/HeaderCell.svelte +++ b/packages/frontend-core/src/components/sheet/cells/HeaderCell.svelte @@ -2,7 +2,7 @@ import { getContext } from "svelte" import SheetCell from "./SheetCell.svelte" import { Icon, Popover, Menu, MenuItem } from "@budibase/bbui" - import { getIconForField } from "../utils" + import { getColumnIcon } from "../utils" export let column export let idx @@ -17,7 +17,7 @@ renderedColumns, dispatch, config, - ui + ui, } = getContext("sheet") let anchor @@ -99,7 +99,7 @@ >
diff --git a/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte b/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte new file mode 100644 index 0000000000..982c449d2a --- /dev/null +++ b/packages/frontend-core/src/components/sheet/cells/LongFormCell.svelte @@ -0,0 +1,101 @@ + + +{#if isOpen} +