diff --git a/src/lib/stores/database.ts b/src/lib/stores/database.ts index 648708bd05..d0d7e160f5 100644 --- a/src/lib/stores/database.ts +++ b/src/lib/stores/database.ts @@ -14,6 +14,18 @@ export const backupsBannerId = 'banner:databaseBackups'; export const showPolicyAlert = writable(false); +type SubNavigationEntity = { + $id: string; + name: string; +}; + +type SubNavigationEvent = + | { + type: 'entity-created'; + entity: SubNavigationEntity; + } + | undefined; + export async function checkForDatabaseBackupPolicies( region: string, projectId: string, @@ -50,17 +62,17 @@ export async function checkForDatabaseBackupPolicies( } function createSubNavigationTrigger() { - const subscribers = new Set<() => void>(); + const subscribers = new Set<(event?: SubNavigationEvent) => void>(); return { - subscribe: (callback: () => void) => { + subscribe: (callback: (event?: SubNavigationEvent) => void) => { subscribers.add(callback); return () => { subscribers.delete(callback); }; }, - update: () => { - subscribers.forEach((callback) => callback()); + update: (event?: SubNavigationEvent) => { + subscribers.forEach((callback) => callback(event)); } }; } diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/create.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/create.svelte index 1f3d84826a..4fff7ddda3 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/create.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/create.svelte @@ -59,6 +59,7 @@ async function createEntity() { error = null; creatingEntity = true; + let createdEntity = false; try { const finalId = id || ID.unique(); @@ -67,6 +68,7 @@ // create entity. await onCreateEntity(finalId, name, isVectorsDb ? dimension : undefined); + createdEntity = true; // cleanup updateAndCleanup(); @@ -75,7 +77,10 @@ trackError(e, analyticsCreateSubmit); } finally { creatingEntity = false; - resetSampleFieldsConfig(); + + if (!createdEntity || !$entityColumnSuggestions.enabled) { + resetSampleFieldsConfig(); + } } } @@ -103,7 +108,7 @@ $effect(() => { // reset is OK here, we don't have to check for entity type! - if (show && isOnEntitiesPage && $entityColumnSuggestions.entity) { + if (show && !creatingEntity && isOnEntitiesPage && $entityColumnSuggestions.entity) { entityColumnSuggestions.update((store) => ({ ...store, entity: null diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/input.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/input.svelte index a9c0b1e04c..6dee7bab04 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/input.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/input.svelte @@ -1,5 +1,4 @@