Fix first-login error, awards performance, filter animation, cache invalidation, and query fixes

- Guard onboarding tRPC queries with session hydration check (fixes UNAUTHORIZED on first login)
- Defer expensive queries on awards page until UI elements are opened (dialog/tab)
- Fix perPage: 500 exceeding backend Zod max of 100 on awards eligibility query
- Add smooth open/close animation to project filters collapsible bar
- Fix seeded user status from ACTIVE to INVITED in seed-candidatures.ts
- Add router.refresh() cache invalidation across ~22 admin forms
- Fix geographic analytics query to use programId instead of round.programId
- Fix dashboard queries to scope by programId correctly
- Fix project.listPool and round queries for projects outside round context
- Add rounds page useEffect for state sync after mutations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 21:21:54 +01:00
parent 573785e440
commit 5cae78fe0c
26 changed files with 830 additions and 341 deletions

View File

@@ -68,8 +68,11 @@ export default function EditPartnerPage() {
}
}, [partner])
const utils = trpc.useUtils()
const updatePartner = trpc.partner.update.useMutation({
onSuccess: () => {
utils.partner.list.invalidate()
utils.partner.get.invalidate()
toast.success('Partner updated successfully')
router.push('/admin/partners')
},
@@ -81,6 +84,7 @@ export default function EditPartnerPage() {
const deletePartner = trpc.partner.delete.useMutation({
onSuccess: () => {
utils.partner.list.invalidate()
toast.success('Partner deleted successfully')
router.push('/admin/partners')
},

View File

@@ -31,8 +31,10 @@ export default function NewPartnerPage() {
const [partnerType, setPartnerType] = useState('PARTNER')
const [visibility, setVisibility] = useState('ADMIN_ONLY')
const utils = trpc.useUtils()
const createPartner = trpc.partner.create.useMutation({
onSuccess: () => {
utils.partner.list.invalidate()
toast.success('Partner created successfully')
router.push('/admin/partners')
},