diff --git a/src/app/(admin)/admin/members/[id]/page.tsx b/src/app/(admin)/admin/members/[id]/page.tsx index 3750510..abea22a 100644 --- a/src/app/(admin)/admin/members/[id]/page.tsx +++ b/src/app/(admin)/admin/members/[id]/page.tsx @@ -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') } diff --git a/src/components/admin/jury/add-member-dialog.tsx b/src/components/admin/jury/add-member-dialog.tsx index 53a54b6..72152ab 100644 --- a/src/components/admin/jury/add-member-dialog.tsx +++ b/src/components/admin/jury/add-member-dialog.tsx @@ -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 diff --git a/src/components/admin/user-actions.tsx b/src/components/admin/user-actions.tsx index cc756a8..043fe26 100644 --- a/src/components/admin/user-actions.tsx +++ b/src/components/admin/user-actions.tsx @@ -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 {