@prezly/theme-kit-nextjs
Version:
Data layer and utility library for developing Prezly themes with NextJS
40 lines (39 loc) • 1.52 kB
TypeScript
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 {};