From ec6c739dfd5863c8cf6d151ad3cb65526ebc93a3 Mon Sep 17 00:00:00 2001 From: Wroud Date: Thu, 17 Sep 2020 19:01:04 +0300 Subject: [PATCH] feat(plugin-object-viewer): add page helpers --- .../plugin-object-viewer/src/IObjectViewerTabContext.ts | 1 + .../plugin-object-viewer/src/ObjectViewerTabService.ts | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/webapp/packages/plugin-object-viewer/src/IObjectViewerTabContext.ts b/webapp/packages/plugin-object-viewer/src/IObjectViewerTabContext.ts index 4ad4cf0ff3..d31c50f853 100644 --- a/webapp/packages/plugin-object-viewer/src/IObjectViewerTabContext.ts +++ b/webapp/packages/plugin-object-viewer/src/IObjectViewerTabContext.ts @@ -14,6 +14,7 @@ import { ObjectPage } from './ObjectPage/ObjectPage'; export interface IObjectViewerTabContext { tab: ITab | null; page?: ObjectPage; + isPageActive(page: ObjectPage): boolean; trySwitchPage(page: ObjectPage): boolean; tabInfo: ITabNavigationContext; nodeInfo: INodeNavigationContext; diff --git a/webapp/packages/plugin-object-viewer/src/ObjectViewerTabService.ts b/webapp/packages/plugin-object-viewer/src/ObjectViewerTabService.ts index c6c90bfe9a..e13eef9aa3 100644 --- a/webapp/packages/plugin-object-viewer/src/ObjectViewerTabService.ts +++ b/webapp/packages/plugin-object-viewer/src/ObjectViewerTabService.ts @@ -69,6 +69,10 @@ export class ObjectViewerTabService { this.navNodeManagerService.navNodeInfoResource.onItemDelete.subscribe(this.removeTabs.bind(this)); } + isPageActive(tab:ITab, page: ObjectPage): boolean { + return tab.handlerState.pageId === page.key; + } + objectViewerTabContext = async ( contexts: IContextProvider, data: INodeNavigationData @@ -119,6 +123,8 @@ export class ObjectViewerTabService { return this.dbObjectPageService.trySwitchPage(tabInfo.tab, page); }; + const isPageActive = (page: ObjectPage) => page === getPage(); + return { get tab() { return tabInfo.tab; @@ -126,6 +132,7 @@ export class ObjectViewerTabService { get page() { return getPage(); }, + isPageActive, trySwitchPage, tabInfo, nodeInfo,