Skip to content

Commit 41c8f0f

Browse files
authored
added functionality which refreshes the table data when there is successful adding or editing of a member (#196)
1 parent 9ecfc5c commit 41c8f0f

File tree

4 files changed

+49
-6
lines changed

4 files changed

+49
-6
lines changed

src/pages/TeamDetail/AddTeamMember.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { XCircle } from 'react-feather'
1414

1515
interface AddMember {
1616
loadingUsers: boolean
17+
setRefreshData: React.Dispatch<React.SetStateAction<boolean>>
1718
userData: User[] | undefined
1819
teamDetailData: TeamDetailData | undefined
1920
teamModalHeader: SidebarHeader
@@ -40,6 +41,7 @@ const defaultSelectedGroup = {
4041

4142
const AddTeamMember = ({
4243
loadingUsers,
44+
setRefreshData,
4345
userData,
4446
teamDetailData,
4547
teamModalHeader,
@@ -107,7 +109,10 @@ const AddTeamMember = ({
107109
}
108110
})
109111
.catch((e) => setAddUserToTeamErrors(e.message))
110-
.finally(() => setShowAddUserSpinner(false))
112+
.finally(() => {
113+
setShowAddUserSpinner(false)
114+
setRefreshData(true)
115+
})
111116
}
112117
}
113118

src/pages/TeamDetail/EditTeamMember.tsx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ interface EditUserStates {
2020

2121
interface EditTeamMember {
2222
editUserInfo: UserInfo
23+
setRefreshData: React.Dispatch<React.SetStateAction<boolean>>
2324
teamDetailData: TeamDetailData | undefined
2425
teamModalHeader: SidebarHeader
2526
teamGroups: Group[]
@@ -35,6 +36,7 @@ const defaultSelectedGroup = {
3536

3637
const EditTeamMember = ({
3738
editUserInfo,
39+
setRefreshData,
3840
teamDetailData,
3941
teamModalHeader,
4042
teamGroups,
@@ -124,7 +126,10 @@ const EditTeamMember = ({
124126
}
125127
})
126128
.catch((e) => setEditUserErrors({ ...editUserErrors, [`${editUserInfo.email}`]: e.message }))
127-
.finally(() => setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false }))
129+
.finally(() => {
130+
setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false })
131+
setRefreshData(true)
132+
})
128133

129134
return
130135
}
@@ -143,7 +148,10 @@ const EditTeamMember = ({
143148
}
144149
})
145150
.catch((e) => setEditUserErrors({ ...editUserErrors, [`${editUserInfo.email}`]: e.message }))
146-
.finally(() => setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false }))
151+
.finally(() => {
152+
setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false })
153+
setRefreshData(true)
154+
})
147155

148156
return
149157
}
@@ -162,7 +170,10 @@ const EditTeamMember = ({
162170
}
163171
})
164172
.catch((e) => setEditUserErrors({ ...editUserErrors, [`${editUserInfo.email}`]: e.message }))
165-
.finally(() => setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false }))
173+
.finally(() => {
174+
setShowEditUserSpinner({ ...showEditUserSpinner, [`${editUserInfo.email}`]: false })
175+
setRefreshData(true)
176+
})
166177
return
167178
}
168179
}

src/pages/TeamDetail/TeamDetail.tsx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ const TeamDetail = () => {
6868

6969
const { setBreadcrumbTeamDetailDisplayName } = useContext(DaplaCtrlContext)
7070
const [error, setError] = useState<ApiError | undefined>()
71+
const [refreshData, setRefreshData] = useState<boolean>(false)
7172
const [loadingTeamData, setLoadingTeamData] = useState<boolean>(true)
7273
const [loadingUsers, setLoadingUsers] = useState<boolean>(false)
7374
const [teamDetailData, setTeamDetailData] = useState<TeamDetailData>()
@@ -179,12 +180,36 @@ const TeamDetail = () => {
179180
const displayName = formatDisplayName((formattedResponse.team as Team).display_name)
180181
setBreadcrumbTeamDetailDisplayName({ displayName })
181182
})
182-
.finally(() => setLoadingTeamData(false))
183+
.finally(() => {
184+
setLoadingTeamData(false)
185+
setRefreshData(false)
186+
})
183187
.catch((error) => {
184188
setError(error as ApiError)
185189
})
186190
}, [])
187191

192+
useEffect(() => {
193+
if (!teamId || refreshData === false) return
194+
setLoadingTeamData(true)
195+
getTeamDetail(teamId)
196+
.then((response) => {
197+
const formattedResponse = response as TeamDetailData
198+
setTeamDetailData(formattedResponse)
199+
setTeamDetailTableData(prepTeamData(formattedResponse))
200+
201+
const displayName = formatDisplayName((formattedResponse.team as Team).display_name)
202+
setBreadcrumbTeamDetailDisplayName({ displayName })
203+
})
204+
.finally(() => {
205+
setLoadingTeamData(false)
206+
setRefreshData(false)
207+
})
208+
.catch((error) => {
209+
setError(error as ApiError)
210+
})
211+
}, [refreshData])
212+
188213
useEffect(() => {
189214
if (isTeamManager()) {
190215
setTeamDetailTableHeaderColumns([
@@ -312,6 +337,7 @@ const TeamDetail = () => {
312337
<>
313338
<AddTeamMember
314339
loadingUsers={loadingUsers}
340+
setRefreshData={setRefreshData}
315341
userData={userData}
316342
teamDetailData={teamDetailData}
317343
teamModalHeader={teamModalHeader}
@@ -321,6 +347,7 @@ const TeamDetail = () => {
321347
/>
322348
<EditTeamMember
323349
editUserInfo={editUserInfo}
350+
setRefreshData={setRefreshData}
324351
teamDetailData={teamDetailData}
325352
teamModalHeader={teamModalHeader}
326353
teamGroups={teamGroups}

src/pages/TeamDetail/teamDetailDialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Dialog } from '@statisticsnorway/ssb-component-library'
55
export const renderSidebarModalInfo = (children: JSX.Element) => {
66
return (
77
<div className={styles.modalBodyDialog}>
8-
<Dialog type='info'>Det kan ta litt tid før du ser endringen.</Dialog>
8+
<Dialog type='info'>Det tar 1-2 minutter før tilgangen er aktivert og tabellen er oppdatert.</Dialog>
99
{children}
1010
</div>
1111
)

0 commit comments

Comments
 (0)