import React from "react"; import styles from "./MagicImage.module.sass"; interface MagicImageProps { src: string alignH?: "left" | "center" | "right" alignV?: "top" | "middle" | "bottom" full?: boolean banner?: boolean fixed?: boolean opacity?: number children?: React.ReactNode } export default function MagicImage(props: MagicImageProps) { let containerClass = [styles.magicImageContainer] let imageClass = [styles.magicImage] let overlayClass = [styles.magicImageOverlay] if (props.fixed) { containerClass.push(styles.fixed); imageClass.push(styles.fixed); } if (props.full) { containerClass.push(styles.full); imageClass.push(styles.full); } if (props.banner) { imageClass.push(styles.banner) overlayClass.push(styles.banner) } const imageStyle = { background: `url(${JSON.stringify(props.src)}) no-repeat fixed center`, backgroundPositionX: props.alignH || "left", backgroundPositionY: props.alignV || "middle", }; const overlayStyle = { backgroundColor: `rgba(0,0,0,${1.0 - (props.opacity || 0.25)})`, }; return (
{props.children}
); }