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

View File

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

View File

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