mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
fix: column selector <> column swap edge case.
Details - Hiding some columns via `columnSelector.svelte` and then swapping them would bring back the hidden columns.
This commit is contained in:
@@ -62,9 +62,8 @@
|
||||
const shownColumns = $columns.filter((n) => n.hide === true).map((n) => n.id);
|
||||
|
||||
if (isCustomTable) {
|
||||
preferences.setCustomTableColumns(page.params.table, shownColumns).then(() => {
|
||||
onPreferencesUpdated?.();
|
||||
});
|
||||
onPreferencesUpdated?.();
|
||||
preferences.setCustomTableColumns(page.params.table, shownColumns);
|
||||
} else {
|
||||
preferences.setColumns(shownColumns);
|
||||
}
|
||||
|
||||
@@ -191,8 +191,6 @@ function createPreferences() {
|
||||
n.tables ??= {};
|
||||
|
||||
n.tables[tableId] = Array.from(new Set(columns));
|
||||
// let's not double save
|
||||
// n.collections[tableId] = Array.from(new Set(columns));
|
||||
return n;
|
||||
}),
|
||||
|
||||
@@ -238,8 +236,8 @@ function createPreferences() {
|
||||
});
|
||||
},
|
||||
|
||||
getColumnOrder(collectionId: string): TeamPreferences['order'] {
|
||||
return teamPreferences?.columnOrder?.[collectionId] ?? [];
|
||||
getColumnOrder(tableId: string): TeamPreferences['order'] {
|
||||
return teamPreferences?.columnOrder?.[tableId] ?? [];
|
||||
},
|
||||
|
||||
async saveColumnOrder(
|
||||
|
||||
+20
-21
@@ -96,7 +96,6 @@
|
||||
|
||||
const minimumWidth = 168;
|
||||
const emptyCellsLimit = $isSmallViewport ? 12 : 18;
|
||||
const selected = preferences.getCustomTableColumns(page.params.table);
|
||||
const SYSTEM_KEYS = new Set([
|
||||
'$tableId',
|
||||
'$databaseId'
|
||||
@@ -133,6 +132,8 @@
|
||||
onDestroy(() => ($showCreateAttributeSheet.show = false));
|
||||
|
||||
function makeTableColumns() {
|
||||
const selected = preferences.getCustomTableColumns(page.params.table);
|
||||
|
||||
const baseColumns = $table.columns.map((col) => ({
|
||||
id: col.key,
|
||||
title: col.key,
|
||||
@@ -185,12 +186,13 @@
|
||||
{
|
||||
id: 'actions',
|
||||
title: '',
|
||||
width: getColumnWidth('actions', 40),
|
||||
width: 40,
|
||||
isAction: true,
|
||||
draggable: false,
|
||||
type: 'string',
|
||||
resizable: false,
|
||||
isEditable: false
|
||||
isEditable: false,
|
||||
hide: false
|
||||
}
|
||||
];
|
||||
|
||||
@@ -198,11 +200,12 @@
|
||||
staticColumns[0],
|
||||
...baseColumns,
|
||||
staticColumns[1],
|
||||
staticColumns[2],
|
||||
staticColumns[3]
|
||||
staticColumns[2]
|
||||
];
|
||||
|
||||
const visibleNonAction = groupedColumns.filter((c) => !c.hide && !c.isAction);
|
||||
const actionsColumn = staticColumns[3];
|
||||
|
||||
const visibleNonAction = groupedColumns.filter((c) => !c.hide);
|
||||
if (visibleNonAction.length === 1) {
|
||||
const only = visibleNonAction[0];
|
||||
if (typeof only.width === 'number') {
|
||||
@@ -212,18 +215,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
tableColumns.set(
|
||||
reorderItems(
|
||||
[
|
||||
staticColumns[0],
|
||||
...baseColumns,
|
||||
staticColumns[1],
|
||||
staticColumns[2],
|
||||
staticColumns[3]
|
||||
],
|
||||
$columnsOrder
|
||||
)
|
||||
);
|
||||
const reorderedNonActions = reorderItems(groupedColumns, $columnsOrder);
|
||||
const finalColumns = [...reorderedNonActions, actionsColumn];
|
||||
|
||||
tableColumns.set(finalColumns);
|
||||
}
|
||||
|
||||
function getColumnWidth(
|
||||
@@ -241,6 +236,8 @@
|
||||
columnsOrder.set(newOrder);
|
||||
}
|
||||
|
||||
makeTableColumns();
|
||||
|
||||
saveColumnOrderToPreferences(newOrder);
|
||||
}
|
||||
|
||||
@@ -404,9 +401,11 @@
|
||||
showColumnDelete = false;
|
||||
|
||||
try {
|
||||
await sdk
|
||||
.forProject(page.params.region, page.params.project)
|
||||
.grids.deleteColumn(databaseId, tableId, $databaseColumnSheetOptions.column.key);
|
||||
await sdk.forProject(page.params.region, page.params.project).grids.deleteColumn({
|
||||
databaseId,
|
||||
tableId,
|
||||
key: $databaseColumnSheetOptions.column.key
|
||||
});
|
||||
|
||||
if ($columnsOrder.includes($databaseColumnSheetOptions.column.key)) {
|
||||
const updatedOrder = $columnsOrder.filter(
|
||||
|
||||
Reference in New Issue
Block a user