UNPKG

@rnga/orders

Version:

## Get schema from @prisma-cms 1. yarn get-api-schema -e http://localhost:4000 2. yarn build-api-fragments

213 lines (153 loc) 4.64 kB
import React, { Component } from 'react' import PropTypes from 'prop-types' export default class TarifSelect extends Component { static propTypes = { // slabConfirmed: PropTypes.bool.isRequired, slabRejected: PropTypes.bool.isRequired, tarifsSelectionOpen: PropTypes.bool.isRequired, selectedSlabTarif: PropTypes.object, SlabServiceOrder: PropTypes.object, SlabServiceOrdered: PropTypes.bool.isRequired, slabTarif: PropTypes.string, slabTarifs: PropTypes.array.isRequired, price: PropTypes.number, onSlabClick: PropTypes.func.isRequired, setTarif: PropTypes.func.isRequired, resetOrder: PropTypes.func.isRequired, updateObject: PropTypes.func.isRequired, rejectSlabOrder: PropTypes.func.isRequired, canEdit: PropTypes.bool.isRequired, } setTarif(n) { const { setTarif, } = this.props; return setTarif(n); } // componentDidUpdate(prevProps, prevState) { // } render() { const { tarifsSelectionOpen, selectedSlabTarif, SlabServiceOrder, SlabServiceOrdered, slabTarif, slabTarifs, price, onSlabClick, // resetOrder, // updateObject, slabRejected, rejectSlabOrder, canEdit, } = this.props; let onClickHandler; const { // id: slabServiceId, // confirmDate, rejectDate: slabServiceOrderRejectDate, Tarif, } = SlabServiceOrder || {}; /** * Если тариф сохранен, нельзя его менять */ if (!Tarif && !slabServiceOrderRejectDate && canEdit) { // if (!confirmDate && !slabServiceOrderRejectDate) { onClickHandler = event => { event.preventDefault(); event.stopPropagation(); // this.setState({ // tarifsSelectionOpen: !tarifsSelectionOpen, // }); onSlabClick(event); } } let expander; if (onClickHandler) { expander = <i className="menu-expand"></i> } return ( <div className={["selection-block", tarifsSelectionOpen ? "open" : ""].join(" ")} // ref={node => { // this.selectTarifWrapper = node; // }} > <div className={["visible-selection", selectedSlabTarif ? "selected-item" : "", SlabServiceOrdered && (!slabTarif || slabServiceOrderRejectDate) && canEdit ? "atantion-flash" : ""].join(" ")} onClick={onClickHandler} > {expander} <span > {slabServiceOrderRejectDate ? "Отказ" : (selectedSlabTarif && selectedSlabTarif.name) || (slabRejected || canEdit ? "Выбрать" : "")} </span> </div> <ul> {slabTarifs.map(n => { const { id, name, code, } = n; let disabled = false; if (price >= 100000 && code !== "premium") { disabled = true; } else if (price < 100000 && code === "premium") { disabled = true; } return <li key={id} // disabled={disabled ? "true" : undefined} className={disabled ? "disabled" : undefined} onClick={event => { event.preventDefault(); event.stopPropagation(); if (disabled) { return false; } this.setTarif(n); // this.setState({ // tarifsSelectionOpen: false, // }); }} > {name.toUpperCase()} </li> })} <li className="visible-selection atantion-flash" onClick={event => { event.preventDefault(); event.stopPropagation(); // resetOrder(); // updateObject({ // rejectSlabService: slabServiceId, // }); rejectSlabOrder(); }} > Отказ </li> {/* <li className="visible-selection atantion-flash" onClick={event => { event.preventDefault(); event.stopPropagation(); // if (disabled) { // return false; // } resetOrder(); // this.setState({ // tarifsSelectionOpen: false, // }); }} > Отмена </li> */} </ul> </div> ) } }