diff --git a/packages/frontend-core/src/components/grid/controls/BulkDuplicationHandler.svelte b/packages/frontend-core/src/components/grid/controls/BulkDuplicationHandler.svelte
new file mode 100644
index 0000000000..bc321fffde
--- /dev/null
+++ b/packages/frontend-core/src/components/grid/controls/BulkDuplicationHandler.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+ Are you sure you want to duplicate {$selectedRowCount}
+ row{$selectedRowCount === 1 ? "" : "s"}?
+ {#if $selectedRowCount >= 10}
+
+ This may take a few seconds.
+ {/if}
+
+
diff --git a/packages/frontend-core/src/components/grid/layout/Grid.svelte b/packages/frontend-core/src/components/grid/layout/Grid.svelte
index 8a82209162..8496aebd35 100644
--- a/packages/frontend-core/src/components/grid/layout/Grid.svelte
+++ b/packages/frontend-core/src/components/grid/layout/Grid.svelte
@@ -7,6 +7,7 @@
import { createAPIClient } from "../../../api"
import { attachStores } from "../stores"
import BulkDeleteHandler from "../controls/BulkDeleteHandler.svelte"
+ import BulkDuplicationHandler from "../controls/BulkDuplicationHandler.svelte"
import GridBody from "./GridBody.svelte"
import ResizeOverlay from "../overlays/ResizeOverlay.svelte"
import ReorderOverlay from "../overlays/ReorderOverlay.svelte"
@@ -212,6 +213,9 @@
{#if $config.canDeleteRows}
{/if}
+ {#if $config.canAddRows}
+
+ {/if}
diff --git a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
index 10bd974260..5535538cf0 100644
--- a/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
+++ b/packages/frontend-core/src/components/grid/overlays/MenuOverlay.svelte
@@ -52,16 +52,8 @@
}
}
- const bulkDuplicate = async () => {
- menu.actions.close()
- const rowsToDuplicate = Object.keys($selectedRows).map(id => {
- return rows.actions.getRow(id)
- })
- const newRows = await rows.actions.bulkDuplicate(rowsToDuplicate)
- if (newRows[0]) {
- const column = $stickyColumn?.name || $columns[0].name
- $focusedCellId = getCellID(newRows[0]._id, column)
- }
+ const bulkDuplicate = () => {
+ dispatch("request-bulk-duplicate")
}
const copyToClipboard = async value => {
@@ -79,7 +71,7 @@
{#if $menu.multiRowMode}