From fe5ab6194171bdbf2461b882b08e0b5d5e717534 Mon Sep 17 00:00:00 2001
From: Andrew Kingston <andrew@kingston.dev>
Date: Thu, 20 Apr 2023 08:58:49 +0100
Subject: [PATCH] Fix menu postiion, fix copy and paste in menu not working

---
 .../src/components/grid/overlays/MenuOverlay.svelte         | 6 +++---
 .../frontend-core/src/components/grid/stores/clipboard.js   | 5 +----
 packages/frontend-core/src/components/grid/stores/menu.js   | 6 ++++--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
index 8aff3cb0cf..b986d13b3d 100644
--- a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
+++ b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
@@ -42,7 +42,7 @@
     <Menu>
       <MenuItem
         icon="Copy"
-        on:click={clipboard.actions.copyCell}
+        on:click={clipboard.actions.copy}
         on:click={menu.actions.close}
       >
         Copy
@@ -50,7 +50,7 @@
       <MenuItem
         icon="Paste"
         disabled={$copiedCell == null}
-        on:click={clipboard.actions.pasteCell}
+        on:click={clipboard.actions.paste}
         on:click={menu.actions.close}
       >
         Paste
@@ -85,7 +85,7 @@
   .menu {
     position: absolute;
     background: var(--cell-background);
-    border: var(--cell-border);
+    border: 1px solid var(--spectrum-global-color-gray-300);
     width: 180px;
     border-radius: 4px;
     display: flex;
diff --git a/packages/frontend-core/src/components/grid/stores/clipboard.js b/packages/frontend-core/src/components/grid/stores/clipboard.js
index 2500e6c39a..cf59dafc54 100644
--- a/packages/frontend-core/src/components/grid/stores/clipboard.js
+++ b/packages/frontend-core/src/components/grid/stores/clipboard.js
@@ -2,20 +2,17 @@ import { writable, get } from "svelte/store"
 
 export const createStores = () => {
   const copiedCell = writable(null)
-  const copiedRow = writable(null)
 
   return {
     copiedCell,
-    copiedRow,
   }
 }
 
 export const deriveStores = context => {
-  const { copiedCell, copiedRow, focusedCellAPI } = context
+  const { copiedCell, focusedCellAPI } = context
 
   const copy = () => {
     copiedCell.set(get(focusedCellAPI)?.getValue())
-    copiedRow.set(null)
   }
 
   const paste = () => {
diff --git a/packages/frontend-core/src/components/grid/stores/menu.js b/packages/frontend-core/src/components/grid/stores/menu.js
index d350137287..3f34c0a266 100644
--- a/packages/frontend-core/src/components/grid/stores/menu.js
+++ b/packages/frontend-core/src/components/grid/stores/menu.js
@@ -1,4 +1,5 @@
 import { writable, get } from "svelte/store"
+import { GutterWidth } from "../lib/constants"
 
 export const createStores = () => {
   const menu = writable({
@@ -22,8 +23,9 @@ export const deriveStores = context => {
     e.preventDefault()
     focusedCellId.set(cellId)
     menu.set({
-      left: e.clientX - $bounds.left + 44 + ($stickyColumn?.width || 0),
-      top: e.clientY - $bounds.top + $rowHeight + 4,
+      left:
+        e.clientX - $bounds.left + GutterWidth + ($stickyColumn?.width || 0),
+      top: e.clientY - $bounds.top + $rowHeight,
       visible: true,
     })
   }