Skip to content

Commit 8eeae54

Browse files
authored
Merge pull request #2333 from appwrite/feat-SER-338-add-create-more-for-columns
2 parents 6746917 + 13a00d0 commit 8eeae54

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
import EditColumn from './columns/edit.svelte';
5353
import RowActivity from './rows/activity.svelte';
5454
import EditRowPermissions from './rows/editPermissions.svelte';
55-
import { Dialog, Layout, Typography } from '@appwrite.io/pink-svelte';
55+
import { Dialog, Layout, Typography, Selector } from '@appwrite.io/pink-svelte';
5656
import { Button, Seekbar } from '$lib/elements/forms';
5757
import { generateFakeRecords, generateColumns } from '$lib/helpers/faker';
5858
import { addNotification } from '$lib/stores/notifications';
@@ -70,6 +70,7 @@
7070
let createIndex: CreateIndex;
7171
let createColumn: CreateColumn;
7272
let selectedOption: Option['name'] = 'String';
73+
let createMoreColumns = false;
7374
7475
/**
7576
* adding a lot of fake data will trigger the realtime below
@@ -327,6 +328,10 @@
327328
328329
spreadsheetRenderKey.set(hash(rowIds));
329330
}
331+
332+
$: if (!$showCreateColumnSheet.show) {
333+
createMoreColumns = false;
334+
}
330335
</script>
331336

332337
<svelte:head>
@@ -336,20 +341,27 @@
336341
<slot />
337342

338343
<SideSheet
339-
closeOnBlur
344+
closeOnBlur={false}
340345
title={$showCreateColumnSheet.title}
341346
titleBadge={selectedOption === 'Relationship' ? 'Experimental' : undefined}
342347
bind:show={$showCreateColumnSheet.show}
343348
submit={{
344349
text: 'Create',
345-
onClick: async () => {
346-
await createColumn?.submit();
347-
},
350+
onClick: async () => await createColumn?.submit(),
348351
disabled: !selectedOption
349352
}}>
353+
{#snippet footer()}
354+
<Layout.Stack inline direction="row" alignItems="center">
355+
<Selector.Switch
356+
id="create-more-columns"
357+
bind:checked={createMoreColumns}
358+
label="Create more" />
359+
</Layout.Stack>
360+
{/snippet}
350361
<CreateColumn
351362
bind:selectedOption
352363
bind:this={createColumn}
364+
bind:createMore={createMoreColumns}
353365
column={$showCreateColumnSheet.column}
354366
columns={$showCreateColumnSheet.columns}
355367
direction={$showCreateColumnSheet.direction}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
columnId = $bindable(null),
2020
columnsOrder = $bindable(null),
2121
selectedOption = $bindable('String'),
22+
createMore = $bindable(false),
2223
onColumnsReorder = null
2324
}: {
2425
column?: Columns;
@@ -27,6 +28,7 @@
2728
columnsOrder?: string[];
2829
direction: ColumnDirection;
2930
selectedOption: Option['name'];
31+
createMore?: boolean;
3032
onColumnsReorder?: (newOrder: string[]) => void;
3133
} = $props();
3234
@@ -148,12 +150,19 @@
148150
message: `Column ${key ?? data?.key} has been created`
149151
});
150152
trackEvent(Submit.ColumnCreate);
153+
154+
if (createMore) {
155+
init();
156+
return true; // keep sheet open
157+
}
158+
return false; // close sheet
151159
} catch (e) {
152160
addNotification({
153161
type: 'error',
154162
message: e.message
155163
});
156164
trackError(e, Submit.ColumnCreate);
165+
return true; // keep open on error
157166
}
158167
}
159168

0 commit comments

Comments
 (0)