Skip to content

Commit 29a9180

Browse files
committed
map delete
1 parent 0afc08d commit 29a9180

1 file changed

Lines changed: 46 additions & 1 deletion

File tree

src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
IconTable
2525
} from '@appwrite.io/pink-icons-svelte';
2626
import { isTabletViewport } from '$lib/stores/viewport';
27-
import { BottomSheet } from '$lib/components';
27+
import { BottomSheet, Confirm } from '$lib/components';
2828
import Button from '$lib/elements/forms/button.svelte';
2929
import { type Models, Query } from '@appwrite.io/console';
3030
import { sdk } from '$lib/stores/sdk';
@@ -38,6 +38,7 @@
3838
import FilePicker from '$lib/components/filePicker.svelte';
3939
4040
import { preferences } from '$lib/stores/preferences';
41+
import { organization } from '$lib/stores/organization';
4142
4243
const data = $derived(page.data) as PageData;
4344
@@ -143,6 +144,38 @@
143144
}
144145
}
145146
147+
let showDelete = $state(false);
148+
let deleteError = $state<string | undefined>();
149+
150+
async function deleteTable() {
151+
if (!selectedTableForAction) return;
152+
try {
153+
await sdk.forProject(region, project).tablesDB.deleteTable({
154+
databaseId,
155+
tableId: selectedTableForAction.$id
156+
});
157+
158+
showDelete = false;
159+
subNavigation.update();
160+
161+
addNotification({
162+
type: 'success',
163+
message: `${selectedTableForAction.name} has been deleted`
164+
});
165+
166+
trackEvent(Submit.TableDelete);
167+
168+
await preferences.deleteTableDetails($organization.$id, selectedTableForAction.$id);
169+
170+
if (tableId === selectedTableForAction.$id) {
171+
await goto(`${base}/project-${region}-${project}/databases/database-${databaseId}`);
172+
}
173+
} catch (e) {
174+
deleteError = e.message;
175+
trackError(e, Submit.TableDelete);
176+
}
177+
}
178+
146179
async function handleTableAction(action: TableAction, table: Models.Table) {
147180
selectedTableForAction = table;
148181
switch (action) {
@@ -186,6 +219,7 @@
186219
);
187220
break;
188221
case 'delete':
222+
showDelete = true;
189223
break;
190224
default:
191225
break;
@@ -385,6 +419,17 @@
385419
}} />
386420
{/if}
387421

422+
<Confirm
423+
confirmDeletion
424+
onSubmit={deleteTable}
425+
title="Delete table"
426+
bind:open={showDelete}
427+
bind:error={deleteError}>
428+
<Typography.Text>
429+
Are you sure you want to delete <b>{selectedTableForAction?.name}</b>?
430+
</Typography.Text>
431+
</Confirm>
432+
388433
<style lang="scss">
389434
.list-container {
390435
height: 100%;

0 commit comments

Comments
 (0)