From e441d940bac1942c8eeb2afb42732cc8667c2cd7 Mon Sep 17 00:00:00 2001 From: Mim Date: Thu, 2 Apr 2026 17:45:41 +0300 Subject: [PATCH] =?UTF-8?q?WEBAPP:=20=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=81=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20("Appl?= =?UTF-8?q?icationCtx.appBarShow")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/app.js | 1 + app/components/p8p_app_workspace.js | 87 +++++++++++++++++------------ app/context/application.js | 4 ++ app/context/application_reducer.js | 6 +- 4 files changed, 61 insertions(+), 37 deletions(-) diff --git a/app/app.js b/app/app.js index 5ee6b93..bccb4e2 100644 --- a/app/app.js +++ b/app/app.js @@ -102,6 +102,7 @@ const Workspace = ({ panels = [], selectedPanel, children } = {}) => { panels={panels} selectedPanel={selectedPanel} caption={appState.appBarTitle} + showAppBar={appState.appBarShow} onHomeNavigate={handleHomeNavigate} onItemNavigate={handleItemNavigate} > diff --git a/app/components/p8p_app_workspace.js b/app/components/p8p_app_workspace.js index dd35fb8..2d42859 100644 --- a/app/components/p8p_app_workspace.js +++ b/app/components/p8p_app_workspace.js @@ -47,7 +47,17 @@ const STYLES = { //----------- //Рабочее пространство -const P8PAppWorkspace = ({ children, panels = [], selectedPanel, caption, closeCaption, homeCaption, onHomeNavigate, onItemNavigate } = {}) => { +const P8PAppWorkspace = ({ + children, + panels = [], + selectedPanel, + caption, + showAppBar = true, + closeCaption, + homeCaption, + onHomeNavigate, + onItemNavigate +} = {}) => { //Собственное состояния const [open, setOpen] = useState(false); @@ -73,42 +83,46 @@ const P8PAppWorkspace = ({ children, panels = [], selectedPanel, caption, closeC //Генерация содержимого return ( - - - - - {open ? "chevron_left" : "menu"} - - - {caption || selectedPanel?.caption} - - - - - - - - close - - - - - - home - - - - - - + {showAppBar && ( + <> + + + + + {open ? "chevron_left" : "menu"} + + + {caption || selectedPanel?.caption} + + + + + + + + close + + + + + + home + + + + + + + + )}
- + {showAppBar && } {children}
@@ -121,6 +135,7 @@ P8PAppWorkspace.propTypes = { panels: PropTypes.arrayOf(P8P_PANELS_MENU_PANEL_SHAPE).isRequired, selectedPanel: P8P_PANELS_MENU_PANEL_SHAPE, caption: PropTypes.string, + showAppBar: PropTypes.bool, closeCaption: PropTypes.string.isRequired, homeCaption: PropTypes.string.isRequired, onHomeNavigate: PropTypes.func, diff --git a/app/context/application.js b/app/context/application.js index db0bd4c..fd9214e 100644 --- a/app/context/application.js +++ b/app/context/application.js @@ -59,6 +59,9 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c //Установка заголовка в шапке приложения const setAppBarTitle = useCallback(appBarTitle => dispatch({ type: APP_AT.SET_APP_BAR_TITLE, payload: appBarTitle }), []); + //Установка флага отображения шапки приложения + const setAppBarShow = useCallback(appBarShow => dispatch({ type: APP_AT.SET_APP_BAR_SHOW, payload: appBarShow }), []); + //Поиск раздела по имени const findPanelByName = name => state.panels.find(panel => panel.name == name); @@ -173,6 +176,7 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c ({ displaySize: displaySizeGetter(), appBarTitle: "", + appBarShow: true, urlBase: "", panels: [], panelsLoaded: false, @@ -50,6 +52,8 @@ const handlers = { [APP_AT.SET_DISPLAY_SIZE]: (state, { payload }) => ({ ...state, displaySize: payload }), //Установка заголовка в шапке приложения [APP_AT.SET_APP_BAR_TITLE]: (state, { payload }) => ({ ...state, appBarTitle: payload }), + //Установка флага отображения шапки приложения + [APP_AT.SET_APP_BAR_SHOW]: (state, { payload }) => ({ ...state, appBarShow: payload }), //Обработчик по умолчанию DEFAULT: state => state };