import React from 'react';
import { Overlay, Popover, ButtonToolbar, Button } from 'react-bootstrap';
import ReactDOM from 'react-dom';
import { durationDisplay } from '../../../commons/utils';
import { app } from '../../../core/app';
export default class TreatPopup extends React.Component {
constructor(props) {
super(props);
this._getTarget = this._getTarget.bind(this);
this.renderPresc = this.renderPresc.bind(this);
}
_getTarget() {
return ReactDOM.findDOMNode(this.props.target);
}
renderPeriod(period) {
return (
{period.ini.format('L')}
{period.end.format('L')}
{__('period.duration') + ': '}
{durationDisplay(period.ini, period.end)}
);
}
renderUnit(data) {
return (
{
this.renderPeriod(data)
}
);
}
renderPresc(data) {
const onDeleteClick = () => app.messageDlg({
title: __('cases.treat.prescription.delete'),
message: __('form.confirm_remove'),
style: 'warning',
type: 'YesNo'
}).then(res => {
if (res === 'yes') {
app.dispatch('del-prescription', data);
}
});
const onEditClick = () => app.dispatch('edt-prescription', this.props.data.data);
return (
{
this.renderPeriod(data)
}
{__('PrescribedMedicine.frequency') + ': '}
{data.data.frequency + '/7'}
{__('PrescribedMedicine.doseUnit') + ': '}
{data.data.doseUnit}
{
data.data.comments &&
{__('global.comments') + ': '}
{data.data.comments}
}
);
}
render() {
if (!this.props.target) {
return null;
}
const data = this.props.data;
const res = data.presc ?
{
title: data.presc.product.name,
content: this.renderPresc(data)
} :
{
title: data.text,
content: this.renderUnit(data)
};
return (
{res.title}} id="ppbar">
{res.content}
);
}
}
TreatPopup.propTypes = {
title: React.PropTypes.string,
show: React.PropTypes.bool,
target: React.PropTypes.any,
data: React.PropTypes.object,
onHide: React.PropTypes.func
};