Skip to content
Snippets Groups Projects
CollectionDescription.js 3.24 KiB
Newer Older
Raul Almeida's avatar
Raul Almeida committed
/*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/>.*/

Raul Almeida's avatar
Raul Almeida committed
import React, { useContext, useState, useEffect } from 'react';
Raul Almeida's avatar
Raul Almeida committed
import axios from 'axios';
Raul Almeida's avatar
Raul Almeida committed
import { Store } from '../Store.js'
import { Grid } from '@material-ui/core';
import Button from '@material-ui/core/Button';
import GetAppIcon from '@material-ui/icons/GetApp';
import AddIcon from '@material-ui/icons/Add';
import styled from 'styled-components';
Raul Almeida's avatar
Raul Almeida committed
import LinearProgress from '@material-ui/core/LinearProgress';
Raul Almeida's avatar
Raul Almeida committed
import CollectionReview from './CollectionReview.js';
import FollowCollectionButton from './FollowCollectionButton.js';
import { apiUrl, apiDomain } from '../env';
Raul Almeida's avatar
Raul Almeida committed

export default function CollectionDescription(props) {
	const { state } = useContext(Store);
Raul Almeida's avatar
Raul Almeida committed
	const [download_url, setDownloadUrl] = useState('');
Raul Almeida's avatar
Raul Almeida committed

Raul Almeida's avatar
Raul Almeida committed
	useEffect(() => {
		const body = {
			"package": {
				"object": [{"type": "Collection", "id": props.collection_id}]
		}};
		axios
			.post(apiUrl+'/package', body)
			.catch(err => {
				if (err.response && err.response.status === 302) {
					setDownloadUrl(apiDomain+'/'+err.response.data.url);
				}
			});}, [props.collection_id]);
Raul Almeida's avatar
Raul Almeida committed

Raul Almeida's avatar
Raul Almeida committed
	return (
		<Grid container direction="column" justify="center" alignItems="center" spacing={5}>
			<Grid 
				item 
				justify="center"
				alignItems="center"
			>
Raul Almeida's avatar
Raul Almeida committed
				<Title>{props.title}</Title>
			</Grid>
			<Grid 
				item
				direction="row" 
				justify="center" 
				alignItems="center"
Raul Almeida's avatar
Raul Almeida committed
			>
Raul Almeida's avatar
Raul Almeida committed
					<CollectionReview 
						scrollToComment={props.scrollToComments}
						id={props.collection_id}/>
Raul Almeida's avatar
Raul Almeida committed
				</Grid>
				{/* <Grid item container sm={8}
Raul Almeida's avatar
Raul Almeida committed
					direction="column" justify="center" alignItems="flex-end"
				>
					<Grid item style={{marginBottom: 10}}>
						<DownloadAnchor href={download_url} >
Raul Almeida's avatar
Raul Almeida committed
							<DownloadButton
								variant="outlined"
								color="primary"
								startIcon={<GetAppIcon fontSize="large"/>}
								size="large"
							>
								<ButtonText>Baixar Coleção</ButtonText>
							</DownloadButton>
						</DownloadAnchor>
Raul Almeida's avatar
Raul Almeida committed
					</Grid>
					<Grid item>
Raul Almeida's avatar
Raul Almeida committed
						<FollowCollectionButton user_id={state.currentUser.id} collection_id={props.collection_id}/>
Raul Almeida's avatar
Raul Almeida committed
					</Grid>
Raul Almeida's avatar
Raul Almeida committed
			</Grid>

		</Grid>
	);
}

const Title=styled.h1`
Raul Almeida's avatar
Raul Almeida committed
	color: rgb(102, 102, 102);
Raul Almeida's avatar
Raul Almeida committed
`
const ButtonText=styled.span`
	font-weight: bolder;
	font-size: 1.2em;
`
const DownloadButton=styled(Button)`
Raul Almeida's avatar
Raul Almeida committed
	padding-left: 10;
	padding-right: 10;
	width: 250px;
Raul Almeida's avatar
Raul Almeida committed
`
const DownloadAnchor=styled.a`
	text-decoration: none !important;
`