mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-06-10 01:24:20 +02:00
refresh data when assign a team to a volunteer, and can unassign
This commit is contained in:
parent
c474426fa8
commit
84477469a8
@ -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
|
||||||
|
@ -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]
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user