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

46 lines
1.0 KiB
TypeScript
Raw Normal View History

2019-11-05 05:09:50 +00:00
import * as React from "react";
import { ComponentProps } from "./BaseComponent";
import styled from "styled-components";
export interface StyledImageProps {
2019-11-14 17:06:32 +00:00
defaultImageUrl: string;
imageUrl?: string;
backgroundColor?: string;
2019-11-14 17:06:32 +00:00
}
export const StyledImage = styled.div<StyledImageProps>`
position: relative;
display: flex;
flex-direction: "row";
background: ${props => props.backgroundColor};
background-image: url("${props => {
return props.imageUrl;
}}"), url("${props => {
return props.defaultImageUrl;
}}");
background-position: center;
background-repeat: no-repeat;
background-size: contain;
height: 100%;
width: 100%;
2019-11-05 05:09:50 +00:00
`;
class ImageComponent extends React.Component<ImageComponentProps> {
render() {
2019-12-03 04:41:10 +00:00
return (
<StyledImage
className={this.props.isLoading ? "bp3-skeleton" : ""}
{...this.props}
></StyledImage>
2019-12-03 04:41:10 +00:00
);
2019-11-05 05:09:50 +00:00
}
}
export interface ImageComponentProps extends ComponentProps {
imageUrl: string;
defaultImageUrl: string;
2019-12-03 04:41:10 +00:00
isLoading: boolean;
2019-11-05 05:09:50 +00:00
}
export default ImageComponent;