Skip to content

Search params & storage

The state the app keeps in the URL and in the browser's storage: 62 search params definitions (SearchParams.define, see Search params) and 27 web storage definitions (PersistedState.define / defineMap of app/modules/persisted-state). A feature's definitions are on its own Search params & storage page, those of shared code below. Each should have an assertRoundTrips test, definitions no test imports are marked.

By feature

FeatureSearch paramsWeb storage
AdminadminSearchParams
ArtartSearchParams, artGridSearchParams, artNewSearchParams
AssociationsassociationsSearchParams
AvailabilityscheduleWeekSearchParams
Build analyzeranalyzerSearchParams
Build statsbuildStatsSearchParams
CalendarcalendarSearchParams, calendarEventsSearchParams, calendarNewSearchParams
ChatchatSearchParamssoundEnabledPersisted, soundVolumePersisted, cooldownsPersisted, lastActiveTabPersisted
Comp analyzercompAnalyzerSearchParams
FriendsfriendsSearchParams
Front pagebannerDismissedPersisted 1 untested
Global statusseenSqLikesPersisted, lastSeenStatusPersisted 2 untested
LeaderboardsleaderboardsSearchParams
LFGlfgSearchParams, lfgNewSearchParams
Map list generatormapListGeneratorSearchParams
Map plannerplansSearchParamsimportedPlansPersisted
Object damage calculatorcalculatorSearchParams
ParamsweaponParamsSearchParams
Plus suggestionsplusSuggestionsSearchParams
Plus votingplusVotingPersisted
ScannerscannerSearchParamsclipVolumePersisted, scannerSettingsPersisted, montageCriteriaPersisted, montageCollapsedGroupsPersisted
ScrimsscrimsSearchParams
SearchsearchSearchParams
SendouQqSearchParams, qLookingSearchParams, weaponUsageSearchParams
SettingssettingsSearchParams
TeamteamJoinSearchParams
Tier list makertierListMakerSearchParamsplacementModePersisted 1 untested
Top searchtopSearchSearchParams
TournamenttournamentSearchSearchParams, tournamentJoinSearchParams, tournamentTeamsSearchParams
Tournament admintournamentAuditSearchParams, tournamentImportTeamsSearchParams
Tournament brackettournamentBracketsSearchParamsbracketScrollPositionPersisted
Tournament matchtournamentMatchesSearchParams
Tournament organizationtournamentOrganizationSearchParams
TranslatetranslateLanguageSearchParamsdraftsPersisted, previewLanguagePersisted
TrophiestrophyTermsAgreedPersisted
User carduserCardEditSearchParams, userCardFriendshipSearchParams
User pageuserResultsSearchParams, userSeasonsSearchParams, userSeasonResultsSearchParams, userSeasonsStatsSearchParams, userSeasonSummaryGraphicSearchParams, userBuildsSearchParams, userArtSearchParams, userBuildsNewSearchParams 1 untested
VodsvodsSearchParams, vodsNewSearchParams, vodsVodSearchParams, userVodsSearchParams
VoicecallToRejoinPersisted, micEnabledPersisted 2 untested

app/components

sessionStorage maintenanceReloadedAtPersisted

app/components/Catcher.tsx:27Not exportedNo round-trip test

KeymaintenanceReloadedAt
Valuev.number()
Default0

Used in Catcher.tsx (own file)

URL weaponLandingSearchParams

app/components/weapon-landing-search-params.ts:6

ParamValueDefaultLoaderDescription
category
v.nullable(
	v.picklist([
		...weaponCategories.map((category) => category.name),
		"SUBS",
		"SPECIALS",
	]),
)
nullfalse

Used in WeaponLanding.tsxanalyzer-search-params.tsWeaponBuildsLayout.tsxbuilds.tsxcalculator-search-params.ts

app/components/layout

localStorage searchTypePersisted

app/components/layout/global-search-persisted.ts:11

Keyglobal-search-search-type
Valuev.picklist(GLOBAL_SEARCH_TYPES)
Default"weapons"

Used in GlobalSearch.tsx

localStorage recentWeaponsPersisted

app/components/layout/global-search-persisted.ts:18

Keycommand-palette-recent-weapons
Valuev.array(numericEnum(mainWeaponIds))
Default[]

Used in global-search-persisted.ts (own file)

URL globalSearchSearchParams

app/components/layout/global-search-search-params.ts:16

ParamValueDefaultLoaderDescription
search v.nullable(v.picklist(["open"]))nullfalse
type v.nullable(v.picklist(GLOBAL_SEARCH_TYPES))nullfalse
weapon v.nullable(numericEnum(mainWeaponIds))nullfalse

Used in GlobalSearch.tsxindex.tsx

URL authErrorSearchParams

app/components/layout/layout-search-params.ts:5No round-trip test

ParamValueDefaultLoaderDescription
authError v.nullable(v.string())nullfalse

Used in AuthErrorDialog.tsxindex.tsx

app/components/match-page

URL matchPageSearchParams

app/components/match-page/match-page-search-params.ts:14

ParamValueDefaultLoaderDescription
tab v.nullable(v.picklist(MATCH_PAGE_TABS))nullfalse

Used in MatchTabs.tsxTournamentMatchActionTab.tsxTournamentMatchScheduleTab.tsx

app/form

URL formSearchParams

app/form/form-search-params.ts:5

ParamValueDefaultLoaderDescription
step v.nullable(v.pipe(v.string(), v.maxLength(100)))nullfalse

Name of the current step of a multi-step form, null for the first step.

Used in SendouForm.tsx

app/hooks

localStorage recentlyReportedWeaponsPersisted

app/hooks/useRecentlyReportedWeapons.ts:10

Keysq__recently-reported-weapons
Valuev.array(numericEnum(mainWeaponIds))
Default[]

Used in useRecentlyReportedWeapons.ts (own file)

sessionStorage reloadedForCommitPersisted

app/hooks/useReloadOnNewDeploy.ts:6Not exportedNo round-trip test

KeyreloadedForCommit
Valuev.string()
Default""

Used in useReloadOnNewDeploy.ts (own file)

sessionStorage revealedTournamentsPersisted

app/hooks/useSpoilerFree.ts:6

KeyspoilerFreeRevealed
Valuev.array(v.number())
Default[]

Used in useSpoilerFree.ts (own file)

localStorage seenFriendRequestsPersisted

app/hooks/useUnseenFriendRequests.ts:8

Keyseen-friend-requests
Valuev.array(v.number())
Default[]

Used in useUnseenFriendRequests.ts (own file)

app/modules/i18n

URL languageSearchParams

app/modules/i18n/i18n-search-params.ts:7

Switches the site's language or the language of in-game names, read by the i18n middleware on any page

ParamValueDefaultLoaderDescription
lng v.nullable(v.picklist(languages.map((lang) => lang.code)))nulltrue
gameLng v.nullable(v.picklist(gameLanguages.map((lang) => lang.code)))nulltrue

Used in LocaleTab.tsxDraftActions.tsxi18next.server.tsroot.tsx

changelog

URL changelogSearchParams

app/features/changelog/changelog-search-params.ts:7

ParamValueDefaultLoaderDescription
since v.nullable(v.pipe(v.string(), v.regex(COMMIT_SHA_PATTERN)))nulltrue

Used in changelog-image.server.ts