UNPKG

@gulibs/vgrove-ui

Version:

VGrove UI component library built with HeroUI and React

82 lines 2.77 kB
import type { BreadcrumbItemProps, PageHandle, PageMeta } from "./types"; /** * 存储配置选项 */ export interface UseStorageOptions { /** 存储类型 */ storage?: 'local' | 'session'; /** 过期时间(毫秒),0 表示永不过期 */ maxAge?: number; /** 是否自动清理过期数据 */ autoCleanup?: boolean; /** 清理间隔(毫秒),默认 5 分钟 */ cleanupInterval?: number; } /** * 基于 react-storage 的 useStorage hook - 支持过期时间 * * @param key 存储键 * @param defaultValue 默认值 * @param options 配置选项 * @returns [value, setValue, removeValue, setWithExpiry, isExpired, cleanup] */ export declare function useStorage<T>(key: string, defaultValue: T, options?: UseStorageOptions): [ T, (value: T) => void, () => void, (value: T, maxAge?: number) => void, () => boolean, () => void ]; import type { AuthActions, AuthState, UseUserOptions, BaseUser } from './types'; /** * 用户状态管理 Hook */ export declare function useUser<TUser extends BaseUser = BaseUser, TCredentials = unknown>(options?: UseUserOptions<TUser, TCredentials>): AuthState<TUser> & AuthActions<TUser, TCredentials>; /** * 只读的用户状态 Hook */ export declare function useUserState<TUser extends BaseUser = BaseUser>(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; }): BreadcrumbItemProps[]; /** * 页面元数据 Hook(支持国际化) */ export declare function usePageMeta<Keys extends string = string>(handle?: PageHandle<Keys>, options?: { enableI18n?: boolean; }): PageMeta<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