UNPKG

@gulibs/react-autoroutes-client

Version:

Client-side utilities for React auto routes

101 lines 3.76 kB
/// <reference types="react" /> import type { LayoutSettings, PageBreadcrumbItemProps, PageHandle, PageMeta, LayoutFeatures } from "./types"; /** * 基于 react-storage 的 useStorage hook */ export declare function useStorage<T>(key: string, defaultValue: T, options?: { storage?: 'local' | 'session'; }): [T, (value: T) => void, () => void]; import type { AuthActions, AuthState, UseUserOptions } from './types'; /** * 用户状态管理 Hook */ export declare function useUser<TUser = any, TCredentials = any>(options?: UseUserOptions<TUser, TCredentials>): AuthState<TUser> & AuthActions<TUser, TCredentials>; /** * 只读的用户状态 Hook */ export declare function useUserState<TUser = any>(storagePrefix?: string, useSessionStorage?: boolean): { user: TUser | null; token: string | null; refreshToken: string | null; isAuthenticated: boolean; }; /** * Token管理 Hook */ export declare function useAuthToken(storagePrefix?: string, useSessionStorage?: boolean): { token: string | null; refreshToken: string | null; setToken: (newToken: string) => void; setRefreshToken: (newRefreshToken: string) => void; clearToken: () => void; clearRefreshToken: () => void; clearAllTokens: () => void; hasToken: boolean; hasRefreshToken: boolean; }; /** * 面包屑 Hook(支持国际化和路由匹配) */ export declare function useBreadcrumbs<Keys extends string = string>(handle?: PageHandle<Keys>, options?: { enableI18n?: boolean; includeMatches?: boolean; }): PageBreadcrumbItemProps[]; /** * 页面元数据 Hook(支持国际化) */ export declare function usePageMeta<Keys extends string = string>(handle?: PageHandle<Keys>, options?: { enableI18n?: boolean; }): PageMeta<Keys> | undefined; /** * 布局设置 Hook */ export declare function useLayoutSettings<Keys extends string = string>(handle?: PageHandle<Keys>): LayoutSettings | undefined; /** * VGrove 布局设置 Hook * 提供更便捷的布局配置访问和默认值处理 */ export declare function useVGroveLayoutSettings<Keys extends string = string>(handle?: PageHandle<Keys>, defaults?: Partial<LayoutSettings>): LayoutSettings; /** * 获取布局配置的特定部分 */ export declare function useLayoutConfig<Keys extends string = string>(section: keyof LayoutSettings, handle?: PageHandle<Keys>): any; /** * 检查布局功能是否启用 */ export declare function useLayoutFeatures<Keys extends string = string>(handle?: PageHandle<Keys>): LayoutFeatures; /** * 页面配置 Hook(支持国际化) */ export declare function usePageConfig<Keys extends string = string>(handle?: PageHandle<Keys>, options?: { enableI18n?: boolean; }): { breadcrumbs: PageBreadcrumbItemProps[]; meta: PageMeta<Keys> | undefined; layoutSettings: LayoutSettings | undefined; handle: PageHandle<Keys> | undefined; }; /** * 完整的页面配置 Hook(包含所有元数据,支持国际化) */ export declare function useI18nPageConfig<Keys extends string = string>(handle?: PageHandle<Keys>): { meta: PageMeta<Keys> | undefined; pageMeta: { title: import("react").ReactNode; description: import("react").ReactNode; } | undefined; breadcrumbs: PageBreadcrumbItemProps[]; layoutSettings: LayoutSettings | undefined; handle: PageHandle<Keys> | undefined; }; /** * 使用动态页面标题 Hook */ export declare function useDocumentTitle<Keys extends string = string>(handle?: PageHandle<Keys>, suffix?: string, options?: { enableI18n?: boolean; }): () => void; /** * 获取页面handle(支持继承) */ export declare function useHandle<Keys extends string = string>(): PageHandle<Keys>; //# sourceMappingURL=hooks.d.ts.map