PromucFlow_constructor/app/client/src/components/designSystems/appsmith/PositionedContainer.tsx

52 lines
1.4 KiB
TypeScript
Raw Normal View History

import React, { ReactNode } from "react";
import { BaseStyle } from "widgets/BaseWidget";
import { WIDGET_PADDING } from "constants/WidgetConstants";
import { generateClassName } from "utils/generators";
2020-06-10 17:31:20 +00:00
import styled from "styled-components";
const PositionedWidget = styled.div`
&:hover {
z-index: 1;
}
`;
type PositionedContainerProps = {
style: BaseStyle;
children: ReactNode;
widgetId: string;
widgetType: string;
};
export const PositionedContainer = (props: PositionedContainerProps) => {
2020-03-04 08:10:40 +00:00
const x = props.style.xPosition + (props.style.xPositionUnit || "px");
const y = props.style.yPosition + (props.style.yPositionUnit || "px");
const padding = WIDGET_PADDING;
return (
2020-06-10 17:31:20 +00:00
<PositionedWidget
style={{
position: "absolute",
left: x,
top: y,
height: props.style.componentHeight + (props.style.heightUnit || "px"),
width: props.style.componentWidth + (props.style.widthUnit || "px"),
padding: padding + "px",
}}
id={props.widgetId}
//Before you remove: This is used by property pane to reference the element
className={
generateClassName(props.widgetId) +
" " +
`t--widget-${props.widgetType
.split("_")
.join("")
.toLowerCase()}`
}
>
{props.children}
2020-06-10 17:31:20 +00:00
</PositionedWidget>
);
};
2020-01-16 11:46:21 +00:00
PositionedContainer.padding = WIDGET_PADDING;
export default PositionedContainer;