Skip to content

Commit 31ec503

Browse files
committed
feat(critical facility details): add CriticalFacilityToolbar for displaying actions
1 parent 60742ed commit 31ec503

File tree

3 files changed

+94
-11
lines changed

3 files changed

+94
-11
lines changed
Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,100 @@
11
import React from 'react';
2+
import PropTypes from 'prop-types';
3+
4+
import { reduxActions } from '@codetanzania/ewea-api-states';
5+
import { Button, Col, Row } from 'antd';
6+
import { EditOutlined, ReloadOutlined } from '@ant-design/icons';
7+
import { notifyError, notifySuccess } from '../../../util';
8+
9+
/* redux actions */
10+
const { getFeature } = reduxActions;
11+
12+
/**
13+
* @function
14+
* @name CriticalFacilityToolbar
15+
* @param props.criticalFacility
16+
* @param {object} props props object
17+
* @param {Function} props.onEdit edit callback
18+
* @description List of actions user can perform on a particular critical facility
19+
* @returns {object} React component
20+
* @version 0.1.0
21+
* @since 0.1.0
22+
*/
23+
const CriticalFacilityToolbar = ({ criticalFacility, onEdit }) => {
24+
return (
25+
<div className="CriticalFacilityToolbar not-printable">
26+
<Row>
27+
<Col xs={4} sm={4} md={1}>
28+
<Button
29+
shape="circle"
30+
size="large"
31+
icon={<ReloadOutlined />}
32+
title="Refresh CriticalFacility"
33+
className="actionButton"
34+
onClick={() =>
35+
getFeature(
36+
// eslint-disable-next-line
37+
criticalFacility._id,
38+
() =>
39+
notifySuccess('CriticalFacility was refreshed successfully'),
40+
() =>
41+
notifyError(
42+
'An error occurred while refreshing criticalFacility, please contact your system administrator'
43+
)
44+
)
45+
}
46+
/>
47+
</Col>
48+
49+
<Col xs={0} sm={0} md={1}>
50+
<Button
51+
shape="circle"
52+
size="large"
53+
icon={<EditOutlined />}
54+
title="Edit CriticalFacility"
55+
className="actionButton"
56+
onClick={() => onEdit()}
57+
/>
58+
</Col>
59+
</Row>
60+
</div>
61+
);
62+
};
263

364
/**
465
* @function
566
* @name CriticalFacilityDetailsViewBody
67+
* @param {object} props React props
68+
* @param {object} props.criticalFacility valid event
69+
* @param {Function} props.onEdit edit callback
670
* @description details of a critical facility
771
* @returns {object} React component
872
* @version 0.1.0
973
* @since 0.1.0
1074
*/
11-
const CriticalFacilityDetailsViewBody = () => {
12-
return <div>This is body</div>;
75+
const CriticalFacilityDetailsViewBody = ({ criticalFacility, onEdit }) => {
76+
return (
77+
<div className="CriticalFacilityDetailsViewBody">
78+
<CriticalFacilityToolbar
79+
criticalFacility={criticalFacility}
80+
onEdit={onEdit}
81+
/>
82+
</div>
83+
);
1384
};
1485

1586
export default CriticalFacilityDetailsViewBody;
87+
88+
CriticalFacilityDetailsViewBody.propTypes = {
89+
criticalFacility: PropTypes.shape({
90+
_id: PropTypes.string,
91+
}).isRequired,
92+
onEdit: PropTypes.func.isRequired,
93+
};
94+
95+
CriticalFacilityToolbar.propTypes = {
96+
criticalFacility: PropTypes.shape({
97+
_id: PropTypes.string,
98+
}).isRequired,
99+
onEdit: PropTypes.func.isRequired,
100+
};

src/GeographicalFeatures/CriticalFacilities/DetailsView/Header.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ import { PageHeader } from 'antd';
33
import PropTypes from 'prop-types';
44

55
/**
6-
* @param root0
7-
* @param root0.name
8-
* @param root0.description
9-
* @param root0.onBack
106
* @function
117
* @name CriticalFacilityDetailsViewHeader
8+
* @param {object} props props object
9+
* @param {string} props.name
10+
* @param {string} props.description
11+
* @param {Function} props.onBack
12+
* @function
1213
* @description header details of a critical facility
1314
* @returns {object} React component
1415
* @version 0.1.0

src/GeographicalFeatures/CriticalFacilities/index.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -652,12 +652,9 @@ class FeatureList extends Component {
652652
destroyOnClose
653653
>
654654
<CriticalFacilityDetailsViewBody
655-
feature={feature}
656-
onShare={() => {
657-
this.handleShare(feature);
658-
}}
655+
criticalFacility={feature}
659656
onEdit={() => {
660-
this.handleEdit(feature);
657+
this.handleItemEdit(feature);
661658
}}
662659
/>
663660
</Drawer>

0 commit comments

Comments
 (0)