Skip to content

Commit 6951dab

Browse files
committed
refactor(event-groups): migrate form to ant v4
see #250
1 parent 9b6b0bb commit 6951dab

File tree

2 files changed

+35
-233
lines changed

2 files changed

+35
-233
lines changed

src/Events/EventGroups/Form/index.js

-201
This file was deleted.

src/Events/EventGroups/index.js

+35-32
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,30 @@
1+
import React, { Component } from 'react';
2+
import PropTypes from 'prop-types';
13
import { httpActions } from '@codetanzania/ewea-api-client';
24
import { Connect, reduxActions } from '@codetanzania/ewea-api-states';
3-
import PropTypes from 'prop-types';
4-
import React, { Component } from 'react';
5-
import isArray from 'lodash/isArray';
65
import { Modal, Col } from 'antd';
76
import { PlusOutlined } from '@ant-design/icons';
7+
import isArray from 'lodash/isArray';
8+
import get from 'lodash/get';
9+
810
import Topbar from '../../components/Topbar';
9-
import EventGroupForm from './Form';
11+
import SettingForm from '../../components/SettingForm';
1012
import NotificationForm from '../../components/NotificationForm';
1113
import ItemList from '../../components/List';
1214
import ListItem from '../../components/ListItem';
1315
import ListItemActions from '../../components/ListItemActions';
1416
import { notifyError, notifySuccess, truncateString } from '../../util';
1517
import './styles.css';
16-
17-
/* constants */
18+
/* http actions */
19+
const {
20+
getEventGroupsExportUrl,
21+
getFocalPeople,
22+
getJurisdictions,
23+
getPartyGroups,
24+
getRoles,
25+
getAgencies,
26+
} = httpActions;
27+
/* redux actions */
1828
const {
1929
getEventGroups,
2030
openEventGroupForm,
@@ -24,28 +34,20 @@ const {
2434
refreshEventGroups,
2535
paginateEventGroups,
2636
deleteEventGroup,
37+
postEventGroup,
38+
putEventGroup,
2739
} = reduxActions;
40+
/* constants */
41+
const { confirm } = Modal;
2842
const nameSpan = { xxl: 5, xl: 5, lg: 5, md: 5, sm: 6, xs: 14 };
2943
const codeSpan = { xxl: 2, xl: 2, lg: 2, md: 2, sm: 5, xs: 4 };
3044
const descriptionSpan = { xxl: 15, xl: 15, lg: 15, md: 14, sm: 9, xs: 0 };
31-
3245
const headerLayout = [
3346
{ ...nameSpan, header: 'Name' },
3447
{ ...codeSpan, header: 'Code' },
3548
{ ...descriptionSpan, header: 'Description' },
3649
];
3750

38-
const { confirm } = Modal;
39-
40-
const {
41-
getEventGroupsExportUrl,
42-
getFocalPeople,
43-
getJurisdictions,
44-
getPartyGroups,
45-
getRoles,
46-
getAgencies,
47-
} = httpActions;
48-
4951
/**
5052
* @class
5153
* @name EventGroups
@@ -97,7 +99,7 @@ class EventGroups extends Component {
9799
* @name searchEventGroups
98100
* @description Search Event Groups List based on supplied filter word
99101
*
100-
* @param {object} event - Event instance
102+
* @param {object} event Event instance
101103
*
102104
* @version 0.1.0
103105
* @since 0.1.0
@@ -131,6 +133,7 @@ class EventGroups extends Component {
131133
* @since 0.1.0
132134
*/
133135
handleAfterCloseForm = () => {
136+
selectEventGroup(null);
134137
this.setState({ isEditForm: false });
135138
};
136139

@@ -242,7 +245,7 @@ class EventGroups extends Component {
242245
loading,
243246
page,
244247
posting,
245-
eventType,
248+
eventGroup,
246249
showForm,
247250
searchQuery,
248251
total,
@@ -277,7 +280,6 @@ class EventGroups extends Component {
277280
itemCount={total}
278281
loading={loading}
279282
// onFilter={this.openFiltersModal}
280-
// onNotify={this.openNotificationForm}
281283
onShare={this.handleShare}
282284
onRefresh={this.handleRefreshEventGroups}
283285
generateExportUrl={getEventGroupsExportUrl}
@@ -319,11 +321,11 @@ class EventGroups extends Component {
319321
)}
320322
>
321323
{/* eslint-disable react/jsx-props-no-spreading */}
322-
<Col {...nameSpan}>{item.strings.name.en}</Col>
323-
<Col {...codeSpan}>{item.strings.code}</Col>
324+
<Col {...nameSpan}>{get(item, 'strings.name.en', 'N/A')}</Col>
325+
<Col {...codeSpan}>{get(item, 'strings.code', 'N/A')}</Col>
324326
<Col {...descriptionSpan}>
325-
<span title={item.strings.description.en}>
326-
{truncateString(item.strings.description.en, 120)}
327+
<span title={get(item, 'strings.description.en', '')}>
328+
{truncateString(get(item, 'strings.description.en', ''), 120)}
327329
</span>
328330
</Col>
329331
{/* eslint-enable react/jsx-props-no-spreading */}
@@ -365,11 +367,12 @@ class EventGroups extends Component {
365367
maskClosable={false}
366368
afterClose={this.handleAfterCloseForm}
367369
>
368-
<EventGroupForm
370+
<SettingForm
371+
setting={eventGroup}
369372
posting={posting}
370-
isEditForm={isEditForm}
371-
eventType={eventType}
372-
onCancel={this.closeEventGroupsForm}
373+
onCancel={this.handleAfterCloseForm}
374+
onCreate={postEventGroup}
375+
onUpdate={putEventGroup}
373376
/>
374377
</Modal>
375378
{/* end create/edit form modal */}
@@ -382,7 +385,7 @@ EventGroups.propTypes = {
382385
loading: PropTypes.bool.isRequired,
383386
eventGroups: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string }))
384387
.isRequired,
385-
eventType: PropTypes.shape({ name: PropTypes.string }),
388+
eventGroup: PropTypes.shape({ name: PropTypes.string }),
386389
page: PropTypes.number.isRequired,
387390
searchQuery: PropTypes.string,
388391
total: PropTypes.number.isRequired,
@@ -391,13 +394,13 @@ EventGroups.propTypes = {
391394
};
392395

393396
EventGroups.defaultProps = {
394-
eventType: null,
397+
eventGroup: null,
395398
searchQuery: undefined,
396399
};
397400

398401
export default Connect(EventGroups, {
399402
eventGroups: 'eventGroups.list',
400-
eventType: 'eventGroups.selected',
403+
eventGroup: 'eventGroups.selected',
401404
loading: 'eventGroups.loading',
402405
posting: 'eventGroups.posting',
403406
page: 'eventGroups.page',

0 commit comments

Comments
 (0)