import { useTheme } from '@emotion/react'; import React from 'react'; import Box from '../Box'; import Typography from '../Typography'; import { StyledCarouselContentWrapper, StyledCarouselHeading, StyledCarouselImage, StyledCustomSizeCarouselImage, } from './StyledCarousel'; import type { CarouselData, CarouselImageProps } from './types'; interface CarouselItemProps extends Omit { width: number; } function isCarouselImageProps( image: CarouselImageProps | string ): image is CarouselImageProps { return typeof image === 'object'; } const CarouselItem = ({ width, image, content, heading, body, }: CarouselItemProps) => { const theme = useTheme(); const ImageComponent = React.useMemo(() => { if (image) { if (isCarouselImageProps(image)) { return ( ); } return ( ); } return null; }, [image]); return ( {ImageComponent} {content} {!!heading && ( {heading} )} {!!body && {body}} ); }; export default CarouselItem;