dumi-theme-lobehub
Version:
dumi-theme-lobehub is a documentation site theme package designed for dumi2. It provides a more beautiful and user-friendly development and reading experience based on @lobehub/ui
49 lines (48 loc) • 2.24 kB
TypeScript
/// <reference types="react" />
import type { ISiteContext } from 'dumi/dist/client/theme-api/context';
import { ILocale, INavItem, IRouteMeta, ISidebarGroup } from 'dumi/dist/client/theme-api/types';
import type { Location } from 'history';
import { StoreApi } from 'zustand';
import { SiteThemeConfig } from "../types";
export type NavData = (INavItem & {
children?: INavItem[] | undefined;
})[];
export type ISiteData = ISiteContext & {
themeConfig: SiteThemeConfig;
};
export interface SiteStore {
locale: ILocale;
location: Location;
navData: NavData;
routeMeta: IRouteMeta;
sidebar?: ISidebarGroup[];
siteData: ISiteData;
tabMeta?: NonNullable<IRouteMeta['tabs']>[0]['meta'];
}
export declare const createStore: (initState: SiteStore) => import("zustand/traditional").UseBoundStoreWithEqualityFn<Omit<StoreApi<SiteStore>, "setState"> & {
setState(partial: SiteStore | Partial<SiteStore> | ((state: SiteStore) => SiteStore | Partial<SiteStore>), replace?: false | undefined, action?: (string | {
[x: string]: unknown;
[x: number]: unknown;
[x: symbol]: unknown;
type: string;
}) | undefined): void;
setState(state: SiteStore | ((state: SiteStore) => SiteStore), replace: true, action?: (string | {
[x: string]: unknown;
[x: number]: unknown;
[x: symbol]: unknown;
type: string;
}) | undefined): void;
}>;
declare const useStore: import("zustand-utils").UseContextStore<StoreApi<SiteStore>>, useStoreApi: () => {
setState: {
(partial: SiteStore | Partial<SiteStore> | ((state: SiteStore) => SiteStore | Partial<SiteStore>), replace?: false | undefined): void;
(state: SiteStore | ((state: SiteStore) => SiteStore), replace: true): void;
};
getState: () => SiteStore;
getInitialState: () => SiteStore;
subscribe: (listener: (state: SiteStore, prevState: SiteStore) => void) => () => void;
}, Provider: ({ createStore, children }: {
createStore: () => StoreApi<SiteStore>;
children: import("react").ReactNode;
}) => import("react").FunctionComponentElement<import("react").ProviderProps<StoreApi<SiteStore> | undefined>>;
export { Provider, useStore as useSiteStore, useStoreApi };