2019-11-13 07:00:25 +00:00
|
|
|
import React from "react";
|
|
|
|
|
import { BaseStyle } from "widgets/BaseWidget";
|
2020-01-16 11:46:21 +00:00
|
|
|
import { PositionTypes, WIDGET_PADDING } from "constants/WidgetConstants";
|
2019-11-13 07:00:25 +00:00
|
|
|
import { theme } from "constants/DefaultTheme";
|
|
|
|
|
type PositionedContainerProps = {
|
|
|
|
|
style: BaseStyle;
|
|
|
|
|
children: JSX.Element | JSX.Element[];
|
2020-01-16 11:46:21 +00:00
|
|
|
isMainContainer?: boolean;
|
2019-11-13 07:00:25 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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.isMainContainer
|
|
|
|
|
? theme.spaces[9]
|
|
|
|
|
: props.style.yPosition + (props.style.yPositionUnit || "px");
|
2019-11-13 07:00:25 +00:00
|
|
|
return (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
position:
|
|
|
|
|
props.style.positionType === PositionTypes.ABSOLUTE
|
|
|
|
|
? "absolute"
|
|
|
|
|
: "relative",
|
|
|
|
|
height: props.style.componentHeight + (props.style.heightUnit || "px"),
|
|
|
|
|
width: props.style.componentWidth + (props.style.widthUnit || "px"),
|
2020-03-04 08:10:40 +00:00
|
|
|
transform: `translate3d(${x}, ${y}, 0)`,
|
2020-01-16 11:46:21 +00:00
|
|
|
padding: props.isMainContainer ? 0 : WIDGET_PADDING + "px",
|
2019-11-13 07:00:25 +00:00
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{props.children}
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2020-01-16 11:46:21 +00:00
|
|
|
PositionedContainer.padding = WIDGET_PADDING;
|
2019-11-13 07:00:25 +00:00
|
|
|
|
|
|
|
|
export default PositionedContainer;
|