11import classNames from "classnames" ;
2- import getCamelCaseStyles from "../utils/getCamelCaseStyles" ;
3- import getStyleOfAnElement from "../utils/getStyleOfAnElement" ;
42import React from "preact/compat" ;
53import { visualBuilderStyles } from "../visualBuilder.style" ;
4+ import { getPsuedoEditableElementStyles } from "../utils/getPsuedoEditableStylesElement" ;
65
76interface PseudoEditableFieldProps {
87 editableElement : HTMLElement ;
@@ -12,27 +11,14 @@ interface PseudoEditableFieldProps {
1211function PseudoEditableFieldComponent (
1312 props : PseudoEditableFieldProps
1413) : JSX . Element {
15- const styles = getCamelCaseStyles (
16- getStyleOfAnElement ( props . editableElement )
17- ) ;
18- // Get the offsetTop and offsetLeft of the editable element and set the position of the pseudo editable element
19- // The pseudo editable element is positioned absolutely at the same location as the editable element
20- const rect = props . editableElement . getBoundingClientRect ( ) ;
21-
22- styles . position = "absolute" ;
23- styles . top = `${ rect . top + window . scrollY } px` ;
24- styles . left = `${ rect . left + window . scrollX } px` ;
25- // setting height to auto so that the element can grow based on the content
26- // and the resize observer can detect the change in height
27- styles . height = "auto" ;
28- styles . whiteSpace = "pre-line"
29- styles . textTransform = "none"
14+ const styles = getPsuedoEditableElementStyles ( props . editableElement , true ) ;
3015
3116 return (
3217 < div
33- className = {
34- classNames ( "visual-builder__pseudo-editable-element" , visualBuilderStyles ( ) [ "visual-builder__pseudo-editable-element" ] )
35- }
18+ className = { classNames (
19+ "visual-builder__pseudo-editable-element" ,
20+ visualBuilderStyles ( ) [ "visual-builder__pseudo-editable-element" ]
21+ ) }
3622 data-testid = "visual-builder__pseudo-editable-element"
3723 style = { styles }
3824 >
0 commit comments