Home Reference Source

src/components/MessageContainer/index.js

import React from 'react';
import Slider from 'react-slick';

const layoutClasses = {
    plain: 'MessageContainer',
    list: 'ListContainer',
    carousel: 'CarouselContainer'
};

// TODO: Test browser resizing
const sliderSettings = {
    dots: true,
    infinite: true,
    speed: 500,
    slidesToShow: 1,
    slidesToScroll: 1,
    nextArrow: <button className="slick-next" />,
    prevArrow: <button className="slick-next" />
};

const MessageContainer = ({ userId, type, children, layout, origin, pages, ...rest }) => {
    let hasSelectedInput = rest.selectedInput !== undefined && rest.selectedInput !== null;

    return (
        <div
            className={`${layoutClasses[layout] || 'MessageContainer'} ${origin === 'local'
                ? 'is-local'
                : ''}`}
        >
            {layout === 'carousel' ? (
                <Slider {...sliderSettings}>
                    {React.Children.map(children, child => (
                        <div className="CarouselContainer-item">{child}</div>
                    ))}
                </Slider>
            ) : (
                children
            )}
        </div>
    );
};

export default MessageContainer;