import React from "react"; import Link from "next/link"; import { connect } from "react-redux"; import { getContractEvents, } from "../../../../actions"; class InnerMenu extends React.Component { constructor(props) { super(props); this.menuRef = React.createRef(); this.state = { menuOpened: false, count_events: 0, count_fines: 0, contract_events: {}, }; } static getDerivedStateFromProps(nextProps, prevState) { return { contract_events: nextProps.contract_events, }; } componentDidMount() { const { number, dispatch } = this.props; const { contract_events } = this.state; if(contract_events[number] === undefined) { getContractEvents({ dispatch, contract: number }); } let l = 0; let m = 0; const menu = [ "payments", "services", "agreement", "documents", "materials", "events", "change" ]; for(let i in menu) { if(this.props.router.asPath.indexOf(menu[i]) > -1) { m = i; } } for(let i = 0; i < m; i++) { l = l + this.menuRef.current.children[i].getBoundingClientRect().width; } this.menuRef.current.scrollLeft = l - 50; } _handle_onToggleMenu = () => { this.setState({ menuOpened: !this.state.menuOpened, }); }; _getActiveLink = (route) => { if (route.indexOf("/payments") > -1) return "График платежей"; if (route.indexOf("/change") > -1) return "Изменить график"; if (route.indexOf("/services") > -1) return "Дополнительные услуги"; if (route.indexOf("/agreement") > -1) return "Документы по договору"; if (route.indexOf("/documents") > -1) return "Закрывающие документы"; if (route.indexOf("/materials") > -1) return "Документы по ФСБУ 25/2018"; if (route.indexOf("/events") > -1) return "События по договору"; if (route.indexOf("/fines") > -1) return "Штрафы ГИБДД"; return null; }; render() { const { number, status } = this.props; const { menuOpened, count_fines, contract_events } = this.state; const count_events = contract_events[number] !== undefined && contract_events[number] !== null ? Object.keys(contract_events[number]).length : 0; console.log("contract_events", contract_events); return ( ) } } function mapStateToProps(state, ownProps) { return { contract_events: state.contract_events }; } export default connect(mapStateToProps)(InnerMenu);