feat(viewPref): keep record of user view preferences per section (groupBy, order, list or grid)

This commit is contained in:
Edouard Vanbelle
2026-05-28 11:12:36 +02:00
parent 7f4b329718
commit bd474aa67e
7 changed files with 204 additions and 7 deletions
+7 -3
View File
@@ -17,6 +17,7 @@
import { ResourceListComponent } from '../components/resourceList.js';
import { normalizeDateBucket, sizeBucket } from '../core/formatters.js';
import { i18n } from '../core/i18n.js';
import * as viewPrefs from '../core/viewPrefs.js';
import { batchToolbar } from '../features/files/batchToolbar.js';
import { inlineViewer } from '../features/files/inlineViewer.js';
import { favorites } from '../features/library/favorites.js';
@@ -163,6 +164,7 @@ const filesView = {
setGroupBy(key) {
if (_groupBy === key) return;
_groupBy = key;
viewPrefs.save('files', _groupBy, _reversed, viewPrefs.load('files').view);
_nextCursor = null;
_component?.clear();
_loadPage({ isFirstPage: true });
@@ -176,6 +178,7 @@ const filesView = {
setDirection(reversed) {
if (_reversed === reversed) return;
_reversed = reversed;
viewPrefs.save('files', _groupBy, _reversed, viewPrefs.load('files').view);
_nextCursor = null;
_component?.clear();
_loadPage({ isFirstPage: true });
@@ -359,10 +362,11 @@ async function loadFiles(options = { insertHistory: true }) {
return;
}
// Reset cursor, groupBy, and direction on navigation to a different folder.
// Reset cursor on navigation; restore saved group-by/direction preferences.
_nextCursor = null;
_groupBy = '';
_reversed = false;
const _savedPrefs = viewPrefs.load('files');
_groupBy = _savedPrefs.groupBy;
_reversed = _savedPrefs.reversed;
// Delay spinner so fast loads avoid the flash
const spinnerTimeout = setTimeout(() => {