diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/createRecord.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/createRecord.svelte
index 53cf2f8949..bf8c1c1ce5 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/createRecord.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/createRecord.svelte
@@ -9,10 +9,11 @@
import { Permissions } from '$lib/components/permissions';
import type { Columns } from './store';
import { ID, type Models } from '@appwrite.io/console';
- import { Alert, Layout, Typography } from '@appwrite.io/pink-svelte';
+ import { Alert, Layout, Typography, Selector } from '@appwrite.io/pink-svelte';
import SideSheet from './layout/sidesheet.svelte';
import { invalidate } from '$app/navigation';
import { Dependencies } from '$lib/constants';
+ import { tick } from 'svelte';
let {
table,
@@ -26,6 +27,8 @@
let isSubmitting = $state(false);
let columnFormWrapper: HTMLDivElement | null = $state(null);
+ let createMore = $state(false);
+ let formResetKey = $state(0);
type CreateRow = {
id?: string;
@@ -65,18 +68,23 @@
permissions: $createRow.permissions
});
- showSheet = false;
addNotification({
message: 'Row has been created',
type: 'success'
});
- // post op clear.
- existingData = null;
trackEvent(Submit.RowCreate, {
customId: !!$createRow.id
});
await invalidate(Dependencies.ROW);
+
+ if (createMore) {
+ createRow = createRowWritable();
+ existingData = null;
+ formResetKey += 1;
+ await tick();
+ focusFirstInput();
+ }
} catch (error) {
addNotification({
message: error.message,
@@ -100,6 +108,8 @@
if (showSheet) {
focusFirstInput();
createRow = createRowWritable();
+ } else {
+ createMore = false;
}
});
@@ -107,6 +117,11 @@
{#if $createRow}
+ {#snippet footer()}
+
+
+
+ {/snippet}
create()
- }}>
+ onClick: async () => {
+ await create();
+ if (createMore) {
+ throw new Error('Keep open');
+ }
+ }
+ }}
+ {footer}>
-
-
-
-
-
-
- Choose which permission scopes to grant your application. It is best
- practice to allow only the permissions you need to meet your project goals.
-
- {#if table.rowSecurity}
-
- Row security is enabled
- Users will be able to access this row if they have been granted
- either row or table permissions.
-
-
- {:else}
-
- Row security is disabled
- If you want to assign row permissions, navigate to Table settings and enable
- row security. Otherwise, only table permissions will be used.
-
- {/if}
-
+ {#key formResetKey}
+
+
+
+
+
+
+ Choose which permission scopes to grant your application. It is best
+ practice to allow only the permissions you need to meet your project
+ goals.
+
+ {#if table.rowSecurity}
+
+ Row security is enabled
+ Users will be able to access this row if they have been granted
+ either row or table permissions.
+
+
+ {:else}
+
+ Row security is disabled
+ If you want to assign row permissions, navigate to Table settings and
+ enable row security. Otherwise, only table permissions will be used.
+
+ {/if}
+
+ {/key}
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/layout/sidesheet.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/layout/sidesheet.svelte
index 243c965e3c..213fa6cc9c 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/layout/sidesheet.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/layout/sidesheet.svelte
@@ -9,7 +9,8 @@
spaced = false,
closeOnBlur = false,
submit,
- children = null
+ children = null,
+ footer = null
}: {
show: boolean;
title: string;
@@ -23,6 +24,7 @@
}
| undefined;
children?: Snippet;
+ footer?: Snippet | null;
} = $props();
@@ -56,10 +58,16 @@