UNPKG

@prezly/theme-kit-nextjs

Version:

Data layer and utility library for developing Prezly themes with NextJS

40 lines (39 loc) 1.52 kB
import type { RoutesMap } from '@prezly/theme-kit-core'; import type { Locale } from '@prezly/theme-kit-intl'; import type { ReactNode } from 'react'; interface Context<T extends RoutesMap> { routes: { [RouteName in keyof T]: T[RouteName]['pattern']; }; locales: Locale.Code[]; defaultLocale: Locale.Code; toLocaleSlug?: (locale: Locale.Code, context: { locales: Locale.Code[]; defaultLocale: Locale.Code; }) => Locale.UrlSlug; } export declare function connect<Routes extends RoutesMap>(): { useRouting: () => { generateUrl: <RouteName extends keyof Routes>(routeName: RouteName, ...params: Routes[RouteName] extends import("@prezly/theme-kit-core").Route<string, infer Match> ? {} extends Match ? [] | [Match extends { localeSlug: string; } ? Omit<Match, "localeSlug"> & { localeCode: string; } : Match extends { localeSlug?: string; } ? Omit<Match, "localeSlug"> & { localeCode?: string; } : Match] | [Match] : [Match extends { localeSlug: string; } ? Omit<Match, "localeSlug"> & { localeCode: string; } : Match extends { localeSlug?: string; } ? Omit<Match, "localeSlug"> & { localeCode?: string; } : Match] | [Match] : never) => `/${string}`; }; RoutingContextProvider: (props: Context<Routes> & { children: ReactNode; }) => import("react/jsx-runtime").JSX.Element; }; export {};