import React from "react"; import Head from 'next/head'; import Image from 'next/image'; import { connect } from "react-redux"; import { withRouter } from 'next/router'; import moment from "moment"; import { SpinnerCircular } from 'spinners-react'; import { reduxWrapper } from '../../store'; import Header from '../components/Header'; import Footer from '../components/Footer'; import Company from "../components/Company"; import InnerMenu from "./components/InnerMenu"; import DownloadPdfButton from "../components/DownloadPdfButton"; import { getContractInfo, getContractAgreement, getContractRules, getFile } from "../../actions"; class ContractPage extends React.Component { constructor(props) { super(props); this.state = { date: null, car: null, contract_date: null, agreement: null, rules: null, loading: false, } } static getDerivedStateFromProps(nextProps, prevState) { return { date: nextProps.date, car: nextProps.car, contract_date: nextProps.contract_date, agreement: nextProps.agreement, rules: nextProps.rules, }; } componentDidMount() { if(!this.state.loading && this.props.number !== undefined) { this.setState({ loading: true }, () => { getContractInfo({ dispatch: this.props.dispatch, number: this.props.number }).then((info) => { console.log("info", info); getContractRules({ dispatch: this.props.dispatch, date: moment(info.date, "YYYY-MM-DD").format("DD.MM.YYYY"), }).then(() => {}).catch(() => {}); }) .catch(() => { }); getContractAgreement({ dispatch: this.props.dispatch, number: this.props.number }).then(() => { this.setState({ loading: false }); }).catch(() => {}); }); } } render() { const { loading, date, car, contract_date, agreement, rules, } = this.state; const { number } = this.props; console.log("rules", rules); const types = { contracts: "Договор", redemptions: "Выкупные документы", agreements: "Дополнительное соглашение", assignments: "Договор цессии", }; return ( ЛК Эволюция автолизинга

Договор №{ number }

{ date !== undefined && date !== null && date !== null && (<> от { moment(date).format("DD.MM.YYYY") })}{ car !== undefined && car !== null ? ` - ${ car.brand.name } ${ car.model.name } | ${ car.reg_number !== null ? car.reg_number : 'без рег. номера' } | ${ car.vin_number }` : '' }
{ loading ? (
) : (
{ agreement !== undefined && agreement !== null && agreement.map((document, index) => ( { document.documents !== undefined && document.documents !== null && document.documents.map((file, file_index) => (

{ types[document.type] } { file.number } от { file.date } { file.type !== undefined && { file.type } }

)) }
)) } { rules !== undefined && rules !== null && rules.map((document, index ) => (

{ document.name } Дата вступления в силу: { document.active_from }

)) }
) }