PromucFlow_constructor/app/client/src/editorComponents/ContainerComponent.tsx

38 lines
1.2 KiB
TypeScript
Raw Normal View History

2019-09-05 17:47:50 +00:00
import { ComponentProps } from "./BaseComponent";
2019-08-29 11:22:09 +00:00
import { ContainerOrientation } from "../constants/WidgetConstants";
import styled from "../constants/DefaultTheme";
import React from "react";
export const Container = styled("div")<ContainerProps>`
2019-08-20 13:19:19 +00:00
display: flex;
2019-08-20 09:39:08 +00:00
flex-direction: ${props => {
2019-09-09 09:08:54 +00:00
return props.orientation === "HORIZONTAL" ? "row" : "column";
2019-03-21 12:10:32 +00:00
}};
2019-03-19 15:21:27 +00:00
background: ${props => props.style.backgroundColor};
2019-09-05 17:47:50 +00:00
color: ${props => props.theme.colors.primary};
2019-03-21 12:10:32 +00:00
position: ${props => {
2019-09-09 09:08:54 +00:00
return props.style.positionType === "ABSOLUTE" ? "absolute" : "relative";
2019-03-21 12:10:32 +00:00
}};
left: ${props => {
2019-09-09 09:08:54 +00:00
return props.style.positionType !== "ABSOLUTE"
? undefined
: props.style.xPosition + props.style.xPositionUnit;
}};
top: ${props => {
2019-09-09 09:08:54 +00:00
return props.style.positionType !== "ABSOLUTE"
? undefined
: props.style.yPosition + props.style.yPositionUnit;
}};
2019-08-29 11:22:09 +00:00
`;
const ContainerComponent = (props: ContainerProps) => {
return <Container {...props}>{props.children}</Container>;
2019-09-09 09:08:54 +00:00
};
2019-09-05 17:47:50 +00:00
export interface ContainerProps extends ComponentProps {
2019-08-29 11:22:09 +00:00
children?: JSX.Element[] | JSX.Element;
orientation?: ContainerOrientation;
addWidget?: Function;
}
2019-09-09 09:08:54 +00:00
export default ContainerComponent;