From 33a4d17278a8a3c6a7e8395add111da836d59d4a Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 10 Mar 2023 11:36:17 +0000 Subject: [PATCH] Remove new row component and improve mouse interactions --- .../src/components/sheet/NewRow.svelte | 149 +++++++++++++++--- .../src/components/sheet/Sheet.svelte | 5 +- .../src/components/sheet/SheetBody.svelte | 6 +- .../src/components/sheet/StickyColumn.svelte | 49 ++---- .../components/sheet/cells/HeaderCell.svelte | 5 +- 5 files changed, 140 insertions(+), 74 deletions(-) diff --git a/packages/frontend-core/src/components/sheet/NewRow.svelte b/packages/frontend-core/src/components/sheet/NewRow.svelte index 90af4cc958..f621099a8e 100644 --- a/packages/frontend-core/src/components/sheet/NewRow.svelte +++ b/packages/frontend-core/src/components/sheet/NewRow.svelte @@ -1,44 +1,145 @@ -
($hoveredRowId = "new")} - on:mouseleave={() => ($hoveredRowId = null)} -> - {#each $visibleColumns as column} - addRow(column)} - width={column.width} - left={column.left} - reorderSource={$reorder.sourceColumn === column.name} - reorderTarget={$reorder.targetColumn === column.name} - /> - {/each} +
+ {#if !isAdding} +
+
+ +
+
Add row
+
+ {:else} +
+ + + + {#if $stickyColumn} + {@const cellId = `new-${$stickyColumn.name}`} + ($selectedCellId = cellId)} + > + (newRow[$stickyColumn.name] = val)} + readonly={$stickyColumn.schema.autocolumn} + /> + + {/if} +
+ +
+ {#each $visibleColumns as column} + {@const cellId = `new-${column.name}`} + ($selectedCellId = cellId)} + > + (newRow[column.name] = val)} + readonly={column.schema.autocolumn} + /> + + {/each} +
+
+ {/if}
diff --git a/packages/frontend-core/src/components/sheet/Sheet.svelte b/packages/frontend-core/src/components/sheet/Sheet.svelte index 655035287d..681c5d2fe2 100644 --- a/packages/frontend-core/src/components/sheet/Sheet.svelte +++ b/packages/frontend-core/src/components/sheet/Sheet.svelte @@ -25,6 +25,7 @@ import UserAvatars from "./UserAvatars.svelte" import KeyboardManager from "./KeyboardManager.svelte" import { clickOutside } from "@budibase/bbui" + import NewRow from "./NewRow.svelte" export let API export let tableId @@ -159,17 +160,17 @@ display: flex; flex-direction: row; justify-items: flex-start; - align-items: flex-start; + align-items: stretch; overflow: hidden; height: 0; position: relative; + background: var(--spectrum-global-color-gray-75); } .sheet-main { flex: 1 1 auto; overflow: hidden; display: flex; flex-direction: column; - align-self: stretch; } /* Controls */ diff --git a/packages/frontend-core/src/components/sheet/SheetBody.svelte b/packages/frontend-core/src/components/sheet/SheetBody.svelte index 7b37337ab9..6990a68395 100644 --- a/packages/frontend-core/src/components/sheet/SheetBody.svelte +++ b/packages/frontend-core/src/components/sheet/SheetBody.svelte @@ -1,10 +1,9 @@
0} >
@@ -88,7 +81,11 @@ {@const rowSelected = !!$selectedRows[row._id]} {@const rowHovered = $hoveredRowId === row._id} {@const containsSelectedRow = $selectedCellRow?._id === row._id} -
($hoveredRowId = row._id)}> +
($hoveredRowId = row._id)} + on:mouseleave={() => ($hoveredRowId = null)} + > {/each} - - {#if $config.allowAddRows} -
($hoveredRowId = "new")} - > - - - - {#if $stickyColumn} - - {/if} -
- {/if}