diff --git a/CHANGELOG b/CHANGELOG index 496108d2486f07ea7cb0611a583ce81d06294761..9eeab52fa77f5ad0bf33727bb31f4acc2a4f89a1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,7 @@ minerva-front (19.0.0~alpha.0) stable; urgency=medium * Feature: allow plugin to add menu option to context menu (#307) * Feature: allow plugin to access info about opened panel (#309) * Feature: allow plugin to hide opened panel (#309) + * Feature: allow plugin to open left panel (#309) -- Piotr Gawron <piotr.gawron@uni.lu> Fri, 18 Oct 2024 13:00:00 +0200 diff --git a/docs/plugins/interface.md b/docs/plugins/interface.md index d4c58be5aca188bdc4e1de1f3afb28f041d22424..6fdf73132da509359a814acfc93013f905f356c1 100644 --- a/docs/plugins/interface.md +++ b/docs/plugins/interface.md @@ -40,3 +40,13 @@ window.minerva.map.data.hidePanel('available-plugins'); //close the panel (regardless which one is opened) window.minerva.map.data.hidePanel('available-plugins'); ``` + +#### OpenPanel + +Open specified panel. + +##### Example of openPanel method usage: + +```javascript +window.minerva.map.data.openPanel('available-plugins'); +``` diff --git a/index.d.ts b/index.d.ts index 4febac59b02a7cc1869777bf5937941461d47c88..c0a839e0d4d4e98858967fe6703d2eed31fd6db6 100644 --- a/index.d.ts +++ b/index.d.ts @@ -77,6 +77,7 @@ declare global { interface: { getOpenedPanel: typeof getOpenedPanel; hidePanel: typeof hidePanel; + openPanel: typeof openPanel; }; overviewImage: { getCurrentOverviewImage: typeof getCurrentOverviewImage; diff --git a/src/services/pluginsManager/interface/openPanel.ts b/src/services/pluginsManager/interface/openPanel.ts new file mode 100644 index 0000000000000000000000000000000000000000..49ed81be48e6e3fb6dc6d3fe934c33708d277d98 --- /dev/null +++ b/src/services/pluginsManager/interface/openPanel.ts @@ -0,0 +1,8 @@ +import { store } from '@/redux/store'; +import { DrawerName } from '@/types/drawerName'; +import { openDrawer } from '@/redux/drawer/drawer.slice'; + +export const openPanel = (panelName: DrawerName): void => { + const { dispatch } = store; + dispatch(openDrawer(panelName)); +}; diff --git a/src/services/pluginsManager/pluginsManager.ts b/src/services/pluginsManager/pluginsManager.ts index adb4a7c11567b85268bf5e2587257ec0b23c42fd..a7f70988d456bf9825aa62238ee2ed3826772806 100644 --- a/src/services/pluginsManager/pluginsManager.ts +++ b/src/services/pluginsManager/pluginsManager.ts @@ -11,6 +11,7 @@ import { minervaDefine } from '@/services/pluginsManager/map/minervaDefine'; import { PluginsContextMenu } from '@/services/pluginsManager/pluginContextMenu/pluginsContextMenu'; import { getOpenedPanel } from '@/services/pluginsManager/interface/getOpenedPanel'; import { hidePanel } from '@/services/pluginsManager/interface/hidePanel'; +import { openPanel } from '@/services/pluginsManager/interface/openPanel'; import { bioEntitiesMethods } from './bioEntities'; import { getModels } from './map/models/getModels'; import { openMap } from './map/openMap'; @@ -83,6 +84,7 @@ export const PluginsManager: PluginsManagerType = { interface: { getOpenedPanel, hidePanel, + openPanel, }, map: { data: {