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
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
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
ThemeLink(props: ThemeLinkProps): ReactElement
ThemeLinkList
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