UNPKG

@scalar/api-client

Version:

the open source API testing client

48 lines 2.11 kB
import type { HttpMethod } from '@scalar/helpers/http/http-methods'; import type { WorkspaceStore } from '@scalar/workspace-store/client'; import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation'; import { type MaybeRefOrGetter } from 'vue'; /** * useSidebarState - Custom hook to manage the sidebar state and navigation logic in the Scalar API client * * This composable manages the sidebar structure, synchronizes selection state * with the current route, and provides a handler for selecting sidebar items. * * Example usage: * * const { handleSelectItem, sidebarState } = useSidebarState({ * workspaceStore, * workspaceSlug, * documentSlug, * path, * method, * exampleName, * }) */ export declare const useSidebarState: ({ workspaceStore, documentSlug, path, method, exampleName, }: { workspaceStore: MaybeRefOrGetter<WorkspaceStore | null>; workspaceSlug: MaybeRefOrGetter<string | undefined>; documentSlug: MaybeRefOrGetter<string | undefined>; path: MaybeRefOrGetter<string | undefined>; method: MaybeRefOrGetter<HttpMethod | undefined>; exampleName: MaybeRefOrGetter<string | undefined>; }) => { handleSelectItem: (id: string) => Promise<void | import("vue-router").NavigationFailure | undefined> | undefined; sidebarState: { items: import("vue").ComputedRef<TraversedEntry[]>; index: import("vue").ComputedRef<Map<string, TraversedEntry & { parent?: TraversedEntry | undefined; }>>; selectedItems: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>; expandedItems: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>; setSelected: (id: string | null) => void; setExpanded: (id: string, value: boolean) => void; isExpanded: (id: string) => boolean; isSelected: (id: string) => boolean; getEntryById: (id: string) => (TraversedEntry & { parent?: TraversedEntry | undefined; }) | undefined; reset: () => void; }; }; //# sourceMappingURL=use-sidebar-state.d.ts.map