From fa1835ada63bade9a12b17fc419520a9730d33ae Mon Sep 17 00:00:00 2001 From: Step7750 Date: Thu, 20 Jul 2023 00:49:08 -0600 Subject: [PATCH] Prevents Overriding Page Size when `start` Query Param Fixes #159 --- src/lib/components/market/page_size.ts | 7 ++++++- src/lib/utils/browser.ts | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/lib/utils/browser.ts diff --git a/src/lib/components/market/page_size.ts b/src/lib/components/market/page_size.ts index a9adca8c..8445b222 100644 --- a/src/lib/components/market/page_size.ts +++ b/src/lib/components/market/page_size.ts @@ -6,6 +6,7 @@ import {query, state} from 'lit/decorators.js'; import {Get} from '../../bridge/handlers/storage_get'; import {Set} from '../../bridge/handlers/storage_set'; import {PAGE_SIZE} from '../../storage/keys'; +import {hasQueryParameter} from '../../utils/browser'; @CustomElement() export class PageSize extends FloatElement { @@ -33,7 +34,11 @@ export class PageSize extends FloatElement { super.connectedCallback(); const size = await Get(PAGE_SIZE); - if (size) { + + // Don't override if the user is manually overriding the start query param + // ie. "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Slate%20%28Field-Tested%29?start=100&count=100" + // Steam already has a bug that pagination doesn't work when setting this. + if (size && !hasQueryParameter('start')) { this.changePageSize(size); } } diff --git a/src/lib/utils/browser.ts b/src/lib/utils/browser.ts new file mode 100644 index 00000000..db3d561a --- /dev/null +++ b/src/lib/utils/browser.ts @@ -0,0 +1,12 @@ +/* + * Functions related to the browser page (ie. parsing the URL) + */ + +export function getQueryParameter(param: string): string | null { + const url = new URL(window.location.href); + return url.searchParams.get(param); +} + +export function hasQueryParameter(param: string): boolean { + return !!getQueryParameter(param); +}