From 663bceee2ebeadb08fe82b53461092167c17ec07 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Fri, 16 Jan 2026 13:45:08 +0530
Subject: [PATCH 1/5] right click actions
---
src/lib/actions/analytics.ts | 11 +-
.../table-[table]/rowContextMenu.svelte | 159 ++++++
.../table-[table]/sheetOptions.svelte | 2 +-
.../table-[table]/spreadsheet.svelte | 500 ++++++++++--------
4 files changed, 446 insertions(+), 226 deletions(-)
create mode 100644 src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rowContextMenu.svelte
diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts
index cfd42ae8f2..3c8b068b7f 100644
--- a/src/lib/actions/analytics.ts
+++ b/src/lib/actions/analytics.ts
@@ -198,7 +198,16 @@ export enum Click {
WebsiteOpenClick = 'click_open_website',
CopyPromptStarterKitClick = 'click_copy_prompt_starter_kit',
OpenInCursorClick = 'click_open_in_cursor',
- OpenInLovableClick = 'click_open_in_lovable'
+ OpenInLovableClick = 'click_open_in_lovable',
+ RowCopyUrl = 'click_row_copy_url',
+ RowCopyJson = 'click_row_copy_json',
+ RowCopySnippet = 'click_row_copy_snippet',
+ RowContextMenuOpen = 'click_row_context_menu_open',
+ RowUpdate = 'click_row_update',
+ RowDuplicate = 'click_row_duplicate',
+ RowDelete = 'click_row_delete',
+ RowPermissions = 'click_row_permissions',
+ RowActivity = 'click_row_activity'
}
export enum Submit {
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rowContextMenu.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rowContextMenu.svelte
new file mode 100644
index 0000000000..2a6441ab2a
--- /dev/null
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/rowContextMenu.svelte
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte
index 3fdf50d14a..d26e006610 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/sheetOptions.svelte
@@ -16,7 +16,7 @@
| 'activity'
| 'copy-url'
| 'copy-json'
- // | 'copy-snippet'
+ | 'copy-snippet'
| 'delete';
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte
index dabc3955cf..523b299bdc 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/spreadsheet.svelte
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+ {#key language}
+
+
+ Get row
+
+
+
+
+ List rows
+
+
+
+
+ Update row
+
+
+
+
+ Delete row
+
+
+
+ {/key}
+
diff --git a/src/lib/elements/forms/inputSelect.svelte b/src/lib/elements/forms/inputSelect.svelte
index de977bfc14..6341dbe874 100644
--- a/src/lib/elements/forms/inputSelect.svelte
+++ b/src/lib/elements/forms/inputSelect.svelte
@@ -20,6 +20,7 @@
badge?: string;
}[];
export let leadingIcon: ComponentType | undefined = undefined;
+ export let showLabel: boolean = true;
let error: string;
@@ -47,6 +48,7 @@
+
+
From 29a91800196a58ab5c83da6c442e245ac82e58bc Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Fri, 16 Jan 2026 16:19:40 +0530
Subject: [PATCH 5/5] map delete
---
.../database-[database]/subNavigation.svelte | 47 ++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte
index 001e65dcc6..4ffce40711 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte
@@ -24,7 +24,7 @@
IconTable
} from '@appwrite.io/pink-icons-svelte';
import { isTabletViewport } from '$lib/stores/viewport';
- import { BottomSheet } from '$lib/components';
+ import { BottomSheet, Confirm } from '$lib/components';
import Button from '$lib/elements/forms/button.svelte';
import { type Models, Query } from '@appwrite.io/console';
import { sdk } from '$lib/stores/sdk';
@@ -38,6 +38,7 @@
import FilePicker from '$lib/components/filePicker.svelte';
import { preferences } from '$lib/stores/preferences';
+ import { organization } from '$lib/stores/organization';
const data = $derived(page.data) as PageData;
@@ -143,6 +144,38 @@
}
}
+ let showDelete = $state(false);
+ let deleteError = $state();
+
+ async function deleteTable() {
+ if (!selectedTableForAction) return;
+ try {
+ await sdk.forProject(region, project).tablesDB.deleteTable({
+ databaseId,
+ tableId: selectedTableForAction.$id
+ });
+
+ showDelete = false;
+ subNavigation.update();
+
+ addNotification({
+ type: 'success',
+ message: `${selectedTableForAction.name} has been deleted`
+ });
+
+ trackEvent(Submit.TableDelete);
+
+ await preferences.deleteTableDetails($organization.$id, selectedTableForAction.$id);
+
+ if (tableId === selectedTableForAction.$id) {
+ await goto(`${base}/project-${region}-${project}/databases/database-${databaseId}`);
+ }
+ } catch (e) {
+ deleteError = e.message;
+ trackError(e, Submit.TableDelete);
+ }
+ }
+
async function handleTableAction(action: TableAction, table: Models.Table) {
selectedTableForAction = table;
switch (action) {
@@ -186,6 +219,7 @@
);
break;
case 'delete':
+ showDelete = true;
break;
default:
break;
@@ -385,6 +419,17 @@
}} />
{/if}
+
+
+ Are you sure you want to delete {selectedTableForAction?.name}?
+
+
+