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 @@