@gulibs/react-autoroutes-client
Version:
Client-side utilities for React auto routes
101 lines • 3.76 kB
TypeScript
/// <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