diff --git a/packages/builder/src/components/start/AppRow.svelte b/packages/builder/src/components/start/AppRow.svelte
index ea2f005216..75f218861b 100644
--- a/packages/builder/src/components/start/AppRow.svelte
+++ b/packages/builder/src/components/start/AppRow.svelte
@@ -19,6 +19,7 @@
export let unpublishApp
export let releaseLock
export let editIcon
+ export let copyAppId
@@ -102,6 +103,9 @@
+
{/if}
{#if !app.deployed}
diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte
index a25e7e2c6a..7bfa1da171 100644
--- a/packages/builder/src/pages/builder/portal/apps/index.svelte
+++ b/packages/builder/src/pages/builder/portal/apps/index.svelte
@@ -12,6 +12,7 @@
Body,
Search,
Divider,
+ Helpers,
} from "@budibase/bbui"
import TemplateDisplay from "components/common/TemplateDisplay.svelte"
import Spinner from "components/common/Spinner.svelte"
@@ -261,6 +262,11 @@
}
}
+ const copyAppId = async app => {
+ await Helpers.copyToClipboard(app.prodId)
+ notifications.success("App ID copied to clipboard.")
+ }
+
function createAppFromTemplateUrl(templateKey) {
// validate the template key just to make sure
const templateParts = templateKey.split("/")
@@ -394,6 +400,7 @@
{#each filteredApps as app (app.appId)}