/*Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana

This file is part of Plataforma Integrada MEC.

Plataforma Integrada MEC is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Plataforma Integrada MEC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with Plataforma Integrada MEC.  If not, see <http://www.gnu.org/licenses/>.*/

import React from 'react'
import Grid from '@material-ui/core/Grid';
import NoContent from './NoContent.js'
import CollectionCardFunction from '../../CollectionCardFunction.js'
import Title from './PanelTitle.js'
import {WhiteContainer, StyledGrid} from '../StyledComponents.js'
import {ButtonsAreaColecao} from './ButtonsArea'


export default function PanelTemplateColecao (props) {
    const RenderFollowedColCard = (card, followerBoolean) => {
        if (followerBoolean) {
            return (
                <CollectionCardFunction
                    name={card.followable.name}
                    rating={card.followable.score}
                    type={card.followable.object_type}
                    description={card.followable.description}
                    author={card.followable.owner.name}
                    avatar={card.followable.owner.avatar}
                    thumbnails={card.followable.items_thumbnails}
                    likeCount={card.followable.likes_count}
                    liked={card.followable.liked}
                    followed={card.followable.followed}
                    />
            )
        }
        else {
            return (
                <CollectionCardFunction
                      name={card.name}
                      rating={card.score}
                      type={card.object_type}
                      description={card.description}
                      author={card.owner.name}
                      avatar={card.owner.avatar}
                      thumbnails={card.items_thumbnails}
                      likeCount={card.likes_count}
                      liked={card.liked}
                      followed={card.followed}
                      tags={card.tags}
                  />
            )
        }
    }

    return (
        <WhiteContainer>
            <Title
                title={props.title}
                length={props.length}
            />

            {
                props.length === 0 ?
                (
                    [
                        <NoContent text={props.noContentText}/>
                    ]
                )
                :
                (
                    [
                        <React.Fragment>
                            <StyledGrid container spacing={1} style={{paddingLeft : "30px", paddingRight : "15px"}}>
                            {
                                props.sliceArr.map( (card) =>
                                <Grid item md={3} xs={12} key={card.id}>
                                    {RenderFollowedColCard(card, props.followed)}
                                </Grid>
                                )
                            }
                            </StyledGrid>

                            <ButtonsAreaColecao
                                sliceLength={props.sliceArr.length}
                                length={props.length}
                                showMore={() => props.showMore()}
                                showAll={() => props.showAll()}
                            />
                        </React.Fragment>
                    ]
                )
            }

        </WhiteContainer>
    )
}