refresh data when assign a team to a volunteer, and can unassign

This commit is contained in:
memeriau 2022-04-18 13:42:03 +02:00
parent c474426fa8
commit 84477469a8
3 changed files with 13 additions and 8 deletions

View File

@ -59,8 +59,8 @@ const TeamWithCandidates: FC<Props> = ({ teamId }): JSX.Element | null => {
const [, saveTeam] = useTeamAssign()
const onTeamSelected = useCallback(
(volunteerId, selectedTeamId) => {
saveTeam(volunteerId, selectedTeamId)
(volunteer, selectedTeamId) => {
saveTeam(volunteer, selectedTeamId)
},
[saveTeam]
)
@ -85,7 +85,7 @@ const TeamWithCandidates: FC<Props> = ({ teamId }): JSX.Element | null => {
<button
key={teamWish.id}
type="button"
onClick={() => onTeamSelected(id, teamWish.id)}
onClick={() => onTeamSelected({ id, team }, teamWish.id)}
className={classnames(
styles.teamWishButton,
active && styles.teamActive

View File

@ -4,9 +4,11 @@ import { selectUserJwtToken } from "../../store/auth"
import { AppState } from "../../store"
import useAction from "../../utils/useAction"
import { fetchVolunteerTeamAssignSet } from "../../store/volunteerTeamAssignSet"
import { refreshVolunteerList } from "../../store/volunteerList"
export const useTeamAssign = (): [any, any] => {
const save = useAction(fetchVolunteerTeamAssignSet)
const refreshVolunteers = useAction(refreshVolunteerList)
const jwtToken = useSelector(selectUserJwtToken)
const teamSet = useSelector(
(state: AppState) => state.volunteerTeamAssignSet?.entity,
@ -14,13 +16,14 @@ export const useTeamAssign = (): [any, any] => {
)
const saveWishes = useCallback(
(volunteerId, teamId) => {
save(jwtToken, 0, {
volunteer: volunteerId,
team: teamId,
async (volunteer, teamId) => {
await save(jwtToken, 0, {
volunteer: volunteer.id,
team: volunteer.team === teamId ? 0 : teamId,
})
refreshVolunteers()
},
[save, jwtToken]
[save, refreshVolunteers, jwtToken]
)
return [teamSet, saveWishes]

View File

@ -48,6 +48,8 @@ export const fetchVolunteerListIfNeed = (): AppThunk => (dispatch, getState) =>
return null
}
export const refreshVolunteerList = (): AppThunk => (dispatch) => dispatch(fetchVolunteerList())
export const selectVolunteerListState = (state: AppState): EntitiesRequest<Volunteer> =>
state.volunteerList