Navigation and routes SDK reference

Theme links, route builders, menus and client-side navigation.

Import these public values from @upstorr/theme-sdk/v1. Do not import their internal source files.

buildThemeArticleUrl

buildThemeArticleUrl(article: ThemeArticleRouteResource): string

buildThemeBlogUrl

buildThemeBlogUrl(blog: ThemeRouteResource): string

buildThemeCollectionUrl

buildThemeCollectionUrl(collection?: ThemeRouteResource): string

buildThemeProductUrl

buildThemeProductUrl(product: ThemeRouteResource): string

buildThemeSearchUrl

buildThemeSearchUrl(input?: { query?: unknown; page?: unknown; basePath?: unknown; }): string

getThemeFeaturedMenuRecords

getThemeFeaturedMenuRecords(_parent: Record<string, unknown>, items: unknown[], mediaMode: string): Record<string, unknown>[]

getThemeMenuDepth

getThemeMenuDepth(items: unknown[], depth?: number): number

getThemeMenuLinkChildren

getThemeMenuLinkChildren(record: Record<string, unknown>): any[]

getThemeMenuLinkHandle

getThemeMenuLinkHandle(record: Record<string, unknown>, index: number): string

getThemeMenuLinkHref

getThemeMenuLinkHref(record: Record<string, unknown>): string

getThemeMenuLinkImage

getThemeMenuLinkImage(record: Record<string, unknown>): string

getThemeMenuLinkKey

getThemeMenuLinkKey(item: unknown, index: number): string

getThemeMenuLinkLabel

getThemeMenuLinkLabel(record: Record<string, unknown>, index: number, fallback?: string): string

normalizeThemeLinkHref

normalizeThemeLinkHref(value: unknown): string

pushThemeHistoryState

pushThemeHistoryState(href: ThemeRouterHref, state?: unknown): void

readThemeCollectionHandle

readThemeCollectionHandle(value: unknown): string
readThemeLinkListLinks(value: unknown, linkLists: Record<string, unknown>): { key: string; label: string; href: string; }[]

readThemeMenuLinkRecord

readThemeMenuLinkRecord(item: unknown): Record<string, unknown>

replaceThemeHistoryState

replaceThemeHistoryState(href: ThemeRouterHref, state?: unknown): void
resolveThemeLinkList(value: unknown, linkLists: Record<string, unknown>): ThemeLinkList

resolveThemeMenuContentType

resolveThemeMenuContentType(modeValue: unknown, parent: Record<string, unknown>, items: unknown[]): string

shouldRenderThemeMenuImages

shouldRenderThemeMenuImages(mode: unknown, items: unknown[]): boolean
ThemeLink(props: ThemeLinkProps): ReactElement
type ThemeLinkList = {
    handle: string;
    title: string;
    links: unknown[];
};

useThemePathname

useThemePathname(): string

useThemeRouter

useThemeRouter(): { push: (href: ThemeRouterHref, options?: ThemeNavigationOptions) => void; replace: (href: ThemeRouterHref, options?: ThemeNavigationOptions) => void; prefetch: (href: string, options?: ThemePrefetchOptions) => void | Promise<void>; refresh: () => void; back: () => void; forward: () => void; }

useThemeSearchParams

useThemeSearchParams(): ThemeSearchParams