@@ -3,14 +3,40 @@ import getVisualBuilderRedirectionUrl from "../utils/getVisualBuilderRedirection
33import { EditIcon } from "./icons" ;
44import { visualBuilderStyles } from "../visualBuilder.style" ;
55import React from "preact/compat" ;
6+ import Config from "../../configManager/configManager" ;
7+ import { IConfigEditButtonBuilder } from "../../types/types" ;
68
7- function StartEditingButtonComponent ( ) : JSX . Element {
8- return (
9+
10+ type Position = NonNullable < IConfigEditButtonBuilder [ 'position' ] > ;
11+
12+ const positionStyles : Record < Position , string > = {
13+ "bottom-right" : visualBuilderStyles ( ) [ 'visual-builder__start-editing-btn__bottom-right' ] ,
14+ "bottom-left" : visualBuilderStyles ( ) [ 'visual-builder__start-editing-btn__bottom-left' ] ,
15+ "top-left" : visualBuilderStyles ( ) [ 'visual-builder__start-editing-btn__top-left' ] ,
16+ "top-right" : visualBuilderStyles ( ) [ 'visual-builder__start-editing-btn__top-right' ] ,
17+ }
18+
19+ export function getEditButtonPosition ( position : any ) : Position {
20+ const validPositions : Position [ ] = [ 'bottom-left' , 'bottom-right' , 'top-left' , 'top-right' ]
21+ if ( validPositions . includes ( position ) ) {
22+ return position
23+ } else {
24+ return "bottom-right"
25+ }
26+ }
27+
28+ function StartEditingButtonComponent ( ) : JSX . Element | null {
29+ const config = Config . get ( )
30+ const enable = config . editButtonBuilder . enable ;
31+ const position = config . editButtonBuilder . position || "bottom-right" ;
32+
33+ return enable ? (
934 < a
1035 href = { getVisualBuilderRedirectionUrl ( ) . toString ( ) }
1136 className = { classNames (
1237 "visual-builder__start-editing-btn" ,
13- visualBuilderStyles ( ) [ "visual-builder__start-editing-btn" ]
38+ visualBuilderStyles ( ) [ "visual-builder__start-editing-btn" ] ,
39+ positionStyles [ getEditButtonPosition ( position ) ]
1440 ) }
1541 data-testid = "vcms-start-editing-btn"
1642 onClick = { ( e ) => {
@@ -24,7 +50,7 @@ function StartEditingButtonComponent(): JSX.Element {
2450 < EditIcon />
2551 < span > Start Editing</ span >
2652 </ a >
27- ) ;
53+ ) : null ;
2854}
2955
3056export default StartEditingButtonComponent ;
0 commit comments