From 0d1676f942d534a8d60d360c73de34f44bc72f5a Mon Sep 17 00:00:00 2001 From: Dmitri Date: Fri, 20 Mar 2026 12:51:22 +0400 Subject: [PATCH] added "disabled" and transparent background for buttons elements --- backend/src/db/api/ui_elements.js | 2 + frontend/src/pages/constructor.tsx | 40 ++++++++++++++++--- .../page_elements-project-edit.tsx | 15 +++++++ frontend/src/pages/ui-elements/[id].tsx | 14 +++++++ 4 files changed, 66 insertions(+), 5 deletions(-) diff --git a/backend/src/db/api/ui_elements.js b/backend/src/db/api/ui_elements.js index 5cc6799..beefc1d 100644 --- a/backend/src/db/api/ui_elements.js +++ b/backend/src/db/api/ui_elements.js @@ -55,6 +55,7 @@ class Ui_elementsDBApi extends GenericDBApi { label: 'Navigation: Forward', navLabel: 'Forward', navType: 'forward', + navDisabled: false, transitionReverseMode: 'auto_reverse', transitionDurationSec: 0.7, appearDelaySec: 0, @@ -69,6 +70,7 @@ class Ui_elementsDBApi extends GenericDBApi { label: 'Navigation: Back', navLabel: 'Back', navType: 'back', + navDisabled: false, transitionReverseMode: 'auto_reverse', transitionDurationSec: 0.7, appearDelaySec: 0, diff --git a/frontend/src/pages/constructor.tsx b/frontend/src/pages/constructor.tsx index 75f792d..cdfae07 100644 --- a/frontend/src/pages/constructor.tsx +++ b/frontend/src/pages/constructor.tsx @@ -128,6 +128,7 @@ type CanvasElement = { descriptionBackgroundColor?: string; navLabel?: string; navType?: NavigationButtonKind; + navDisabled?: boolean; targetPageId?: string; transitionVideoUrl?: string; transitionReverseMode?: 'auto_reverse' | 'separate_video'; @@ -505,6 +506,7 @@ const createDefaultElement = ( ...base, navLabel: getNavigationButtonLabel(type), navType: getNavigationButtonKind(type), + navDisabled: false, iconUrl: '', transitionReverseMode: 'auto_reverse', }; @@ -1955,6 +1957,9 @@ const ConstructorPage = ({ mode = 'constructor' }: ConstructorPageProps) => { const onCanvasElementClick = (element: CanvasElement) => { if (!isConstructorEditMode) { if (isNavigationElementType(element.type)) { + if (element.navDisabled) { + return; + } const direction = element.navType === 'back' || element.type === 'navigation_prev' ? 'back' @@ -2859,10 +2864,17 @@ const ConstructorPage = ({ mode = 'constructor' }: ConstructorPageProps) => { (element.type === 'navigation_next' || element.type === 'navigation_prev'); const hasTransparentBackground = - element.type === 'description' && - !element.iconUrl && - (!element.descriptionBackgroundColor || - element.descriptionBackgroundColor === 'transparent'); + (element.type === 'description' && + !element.iconUrl && + (!element.descriptionBackgroundColor || + element.descriptionBackgroundColor === 'transparent')) || + element.type === 'navigation_next' || + element.type === 'navigation_prev' || + element.type === 'tooltip' || + element.type === 'gallery' || + element.type === 'carousel'; + const isNavDisabled = + isNavigationElementType(element.type) && element.navDisabled; return (