feat(library): time to beat, short-games filter and backlog hours

This commit is contained in:
lobo committed 2026-09-24 14:40:41 +02:00
1 parent fd343da4be
commit 91d5672421
11 files changed
+131 -11

No files matched your search

+2 -1
View File
@@ -25,10 +25,11 @@ export const saveBacklogEntry = (appid, entry) =>
body: JSON.stringify(entry),
});
export const libraryQuery = ({page, size, sort, status, q}) => {
export const libraryQuery = ({page, size, sort, status, q, maxMinutes}) => {
const params = new URLSearchParams({page: String(page), size: String(size), sort});
if (status) params.set('status', status);
if (q?.trim()) params.set('q', q.trim());
if (maxMinutes) params.set('maxMinutes', String(maxMinutes));
return params.toString();
};
+5
View File
@@ -27,6 +27,11 @@ describe('libraryQuery', () => {
.toBe('page=0&size=20&sort=playtimeMinutes%2Cdesc');
});
it('adds the time-to-beat limit', () => {
expect(libraryQuery({page: 0, size: 20, sort: 'appid,asc', status: null, q: '', maxMinutes: 600}))
.toBe('page=0&size=20&sort=appid%2Casc&maxMinutes=600');
});
it('adds status and the trimmed, encoded search', () => {
expect(libraryQuery({page: 1, size: 40, sort: 'appid,asc', status: 'DROPPED', q: ' 100% & more '}))
.toBe('page=1&size=40&sort=appid%2Casc&status=DROPPED&q=100%25+%26+more');