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 (