@relax.dev/router
Version:
Router for VKUI
54 lines (53 loc) • 2.06 kB
TypeScript
import { Route } from './Route';
import { State } from './State';
import { InfinityPanelIdTitle, PageParams, RouterGenericBase } from './Types';
export declare class Location<T extends RouterGenericBase = RouterGenericBase> {
route: Route<T>;
state: State<T>;
constructor(route: Route<T>, state: State<T>);
/**
* @ignore
* @param viewId
*/
getLastPanelInView(viewId: T['viewId']): T['panelId'] | undefined;
/**
* Массив из id панелей для передачи в атрибут history <View>
*
* ```javascript
* import { useLocation } from '@happysanta/router';
*
* const App = () => {
* const location = useLocation();
* return <View id={VIEW_MAIN}
* history={location.getViewHistory(VIEW_MAIN)}
* activePanel={location.getViewActivePanel(VIEW_MAIN)}>
* <Home id={PANEL_MAIN}/>
* <Persik id={PANEL_PERSIK}/>
* </View>
* }
* ```
*
* @param viewId
*/
getViewHistory(viewId: T['viewId']): Array<T['panelId'] | InfinityPanelIdTitle<T['panelId']>>;
getViewHistoryWithLastPanel(viewId: T['viewId']): Array<T['panelId'] | InfinityPanelIdTitle<T['panelId']>>;
/**
* @deprecated use getViewActivePanel
* @ignore
* @param viewId
*/
getPanelIdInView(viewId: T['viewId']): T['panelId'] | InfinityPanelIdTitle<T['panelId']> | undefined;
getViewActivePanel(viewId: T['viewId']): T['panelId'] | InfinityPanelIdTitle<T['panelId']> | undefined;
getPanelId(): T['panelId'] | InfinityPanelIdTitle<T['panelId']>;
getViewId(): T['viewId'];
getRootId(): T['rootId'];
getModalId(): T['modalId'] | null;
getPopupId(): T['popupId'] | null;
getPageId(): T['pageId'];
getParams(): PageParams;
hasOverlay(): boolean;
/**
* Если вам надо отрисовать стрелочку назад или домик то используйте эту функцию
*/
isFirstPage(): boolean;
}