/home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/utils
NameSizeModeActions
snippets/-0755rm
bootstrap.tsx8760644editdlrm
errors.ts5520644editdlrm
files.ts40730644editdlrm
hooks.ts4980644editdlrm
Linter.ts45450644editdlrm
Prism.ts7540644editdlrm
restAPI.ts8420644editdlrm
screen.ts3400644editdlrm
text.ts15810644editdlrm
urls.ts24110644editdlrm
Edit: /home/vianto5/hidalgoresidences.mx/wp-content/plugins/code-snippets/js/utils/urls.ts (2411B)
import { addQueryArgs } from '@wordpress/url' export type UrlQueryArgs = Record export const fetchQueryParam = (name: string): string | undefined => { const urlParams = new URLSearchParams(window.location.search) return urlParams.get(name) ?? undefined } export const fetchConstQueryParam = (name: string, values: readonly T[]): T | undefined => { const isT = (value: string): value is T => ( values).includes(value) const value = fetchQueryParam(name) return value && isT(value) ? value : undefined } export const updateQueryParams = (params: Record) => { if ('URLSearchParams' in window) { const searchParams = new URLSearchParams(window.location.search) for (const [name, value] of Object.entries(params)) { if (value) { searchParams.set(name, String(value)) } else { searchParams.delete(name) } } const newUrl = window.location.toString().replace(window.location.search, `?${searchParams.toString()}`) window.history.replaceState({}, document.title, newUrl) } } const normaliseQueryArg = (value: unknown): string | undefined => { switch (true) { case value === undefined || null === value: return undefined case 'boolean' === typeof value: return value ? '1' : '0' case 'number' === typeof value: case 'string' === typeof value: return String(value) default: throw new Error(`Unsupported query arg type: ${typeof value}`) } } export const buildAdminUrl = ( queryArgs: UrlQueryArgs, preserveQueryArgs: string[] = [] ) => { const searchParams = new URLSearchParams(window.location.search) for (const queryArgName of ['page', ...preserveQueryArgs]) { const value = searchParams.get(queryArgName) if (value && queryArgs[queryArgName] === undefined) { queryArgs[queryArgName] = value } } return buildUrl( `${window.location.origin}${window.location.pathname}`, { page: searchParams.get('page'), ...queryArgs } ) } export const buildUrl = ( base: string | undefined, queryArgs: UrlQueryArgs ): string => { const processedArgs: Record = {} for (const [key, value] of Object.entries(queryArgs)) { const processedArg = normaliseQueryArg(value) if (processedArg !== undefined) { processedArgs[key] = processedArg } } return addQueryArgs(base, processedArgs) }