Fix missing query invalidations across member management
Add utils.user.list.invalidate() after mutations that change user status to ensure member lists refresh without manual page reload: - Member detail page: after update and send invitation - User mobile actions: after send invitation - Add member dialog: after send invitation in jury group flow Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
5965f7889d
commit
3fb0d128a1
|
|
@ -58,6 +58,7 @@ import {
|
|||
export default function MemberDetailPage() {
|
||||
const params = useParams()
|
||||
const router = useRouter()
|
||||
const utils = trpc.useUtils()
|
||||
const userId = params.id as string
|
||||
|
||||
const { data: user, isLoading, error, refetch } = trpc.user.get.useQuery({ id: userId })
|
||||
|
|
@ -103,6 +104,8 @@ export default function MemberDetailPage() {
|
|||
expertiseTags,
|
||||
maxAssignments: maxAssignments ? parseInt(maxAssignments) : null,
|
||||
})
|
||||
utils.user.get.invalidate({ id: userId })
|
||||
utils.user.list.invalidate()
|
||||
toast.success('Member updated successfully')
|
||||
router.push('/admin/members')
|
||||
} catch (error) {
|
||||
|
|
@ -115,6 +118,7 @@ export default function MemberDetailPage() {
|
|||
await sendInvitation.mutateAsync({ userId })
|
||||
toast.success('Invitation email sent successfully')
|
||||
refetch()
|
||||
utils.user.list.invalidate()
|
||||
} catch (error) {
|
||||
toast.error(error instanceof Error ? error.message : 'Failed to send invitation')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ export function AddMemberDialog({ juryGroupId, open, onOpenChange }: AddMemberDi
|
|||
const { mutate: sendInvitation } = trpc.user.sendInvitation.useMutation({
|
||||
onSuccess: (result) => {
|
||||
toast.success(`Invitation sent to ${result.email}`)
|
||||
utils.user.list.invalidate()
|
||||
},
|
||||
onError: (err) => {
|
||||
// Don't block — user was created and added, just invitation failed
|
||||
|
|
|
|||
|
|
@ -250,6 +250,7 @@ export function UserMobileActions({
|
|||
try {
|
||||
await sendInvitation.mutateAsync({ userId })
|
||||
toast.success(`Invitation sent to ${userEmail}`)
|
||||
utils.user.list.invalidate()
|
||||
} catch (error) {
|
||||
toast.error(error instanceof Error ? error.message : 'Failed to send invitation')
|
||||
} finally {
|
||||
|
|
|
|||
Loading…
Reference in New Issue