import React from "react";
import { SpinnerCircular } from 'spinners-react';

import { getPrintFile } from "../../../actions";

export default class DownloadPrintFormPdfButton  extends React.Component 
{
	constructor(props)
	{
		super(props);
		this.state = {
			downloading: false, 
		};
	}

	_handle_onDownloadFile = () => 
	{
		const { downloading } = this.state;
		const { contract, num, date, type, filename } = this.props;

		if(!downloading)
		{
			this.setState({ downloading: true }, () => 
			{
				getPrintFile({ contract, num, date, type, filename })
				.then(() => 
				{
					this.setState({ downloading: false });
				})
				.catch(() => 
				{
					this.setState({ downloading: false });
				});
			});
		}
	}

	render() 
	{
		const { downloading } = this.state;

		return (
			<a style={{ cursor: "pointer" }} className={this.props.className + " button button-blue"} onClick={ () => { this._handle_onDownloadFile() }}>
				{ downloading ? (
					<SpinnerCircular size={24} thickness={100} speed={100} color="rgba(255, 255, 255, 1)" secondaryColor="rgba(255, 255, 255, 0.5)" />
				) : "Скачать" }
			</a>
		)
	}
}