From 0a8fe4d812f7e80447c623788429247ff346c90e Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Thu, 23 Jan 2020 10:50:23 -0500 Subject: [PATCH] Fixes InvGroupForm submission bug. The inventory id now comes through useParams instead of through props. Also updates tests to reflect those changes --- .../InventoryGroupAdd/InventoryGroupAdd.jsx | 18 +++++++++--------- .../InventoryGroupAdd.test.jsx | 4 +--- .../InventoryGroupEdit/InventoryGroupEdit.jsx | 18 ++++++++---------- .../InventoryGroupEdit.test.jsx | 14 +------------- 4 files changed, 19 insertions(+), 35 deletions(-) diff --git a/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.jsx b/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.jsx index eff8a2fe10..ede9a5abf2 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.jsx @@ -1,28 +1,28 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState } from 'react'; import { withI18n } from '@lingui/react'; -import { withRouter } from 'react-router-dom'; +import { useHistory, useParams } from 'react-router-dom'; import { GroupsAPI } from '@api'; import { Card } from '@patternfly/react-core'; import InventoryGroupForm from '../shared/InventoryGroupForm'; -function InventoryGroupsAdd({ history, inventory, setBreadcrumb }) { +function InventoryGroupsAdd() { const [error, setError] = useState(null); - - useEffect(() => setBreadcrumb(inventory), [inventory, setBreadcrumb]); + const { id } = useParams(); + const history = useHistory(); const handleSubmit = async values => { - values.inventory = inventory.id; + values.inventory = id; try { const { data } = await GroupsAPI.create(values); - history.push(`/inventories/inventory/${inventory.id}/groups/${data.id}`); + history.push(`/inventories/inventory/${id}/groups/${data.id}`); } catch (err) { setError(err); } }; const handleCancel = () => { - history.push(`/inventories/inventory/${inventory.id}/groups`); + history.push(`/inventories/inventory/${id}/groups`); }; return ( @@ -35,5 +35,5 @@ function InventoryGroupsAdd({ history, inventory, setBreadcrumb }) { ); } -export default withI18n()(withRouter(InventoryGroupsAdd)); +export default withI18n()(InventoryGroupsAdd); export { InventoryGroupsAdd as _InventoryGroupsAdd }; diff --git a/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.test.jsx b/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.test.jsx index a3abb97035..ccbbdb8bfb 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.test.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryGroupAdd/InventoryGroupAdd.test.jsx @@ -21,9 +21,7 @@ describe('', () => { wrapper = mountWithContexts( ( - {}} inventory={{ id: 1 }} /> - )} + component={() => } />, { context: { diff --git a/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.jsx b/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.jsx index 230314ce7c..aa1ddde74f 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.jsx @@ -1,28 +1,26 @@ import React, { useState } from 'react'; import { withI18n } from '@lingui/react'; -import { withRouter } from 'react-router-dom'; +import { useParams, useHistory } from 'react-router-dom'; import { GroupsAPI } from '@api'; import InventoryGroupForm from '../shared/InventoryGroupForm'; -function InventoryGroupEdit({ history, inventoryGroup, inventory, match }) { +function InventoryGroupEdit({ inventoryGroup }) { const [error, setError] = useState(null); + const { id, groupId } = useParams(); + const history = useHistory(); const handleSubmit = async values => { try { - await GroupsAPI.update(match.params.groupId, values); - history.push( - `/inventories/inventory/${inventory.id}/groups/${inventoryGroup.id}` - ); + await GroupsAPI.update(groupId, values); + history.push(`/inventories/inventory/${id}/groups/${groupId}`); } catch (err) { setError(err); } }; const handleCancel = () => { - history.push( - `/inventories/inventory/${inventory.id}/groups/${inventoryGroup.id}` - ); + history.push(`/inventories/inventory/${id}/groups/${groupId}`); }; return ( @@ -34,5 +32,5 @@ function InventoryGroupEdit({ history, inventoryGroup, inventory, match }) { /> ); } -export default withI18n()(withRouter(InventoryGroupEdit)); +export default withI18n()(InventoryGroupEdit); export { InventoryGroupEdit as _InventoryGroupEdit }; diff --git a/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.test.jsx b/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.test.jsx index 240bb3dec0..fe9c678a23 100644 --- a/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.test.jsx +++ b/awx/ui_next/src/screens/Inventory/InventoryGroupEdit/InventoryGroupEdit.test.jsx @@ -26,24 +26,12 @@ describe('', () => { wrapper = mountWithContexts( ( - {}} - inventory={{ id: 1 }} - inventoryGroup={{ id: 2 }} - /> - )} + component={() => } />, { context: { router: { history, - route: { - match: { - params: { groupId: 13 }, - }, - location: history.location, - }, }, }, }