diff --git a/packages/admin/src/hooks/use-pagination.ts b/packages/admin/src/hooks/use-pagination.ts index e8ea822..490b257 100644 --- a/packages/admin/src/hooks/use-pagination.ts +++ b/packages/admin/src/hooks/use-pagination.ts @@ -23,12 +23,12 @@ export function usePagination() { function setParams(updates: Partial) { navigate({ - search: ((prev: Record) => ({ + search: (prev: any) => ({ ...prev, ...updates, // Reset to page 1 when search or sort changes page: updates.q !== undefined || updates.sort !== undefined ? 1 : (updates.page ?? (prev as PaginationSearch).page), - })) as (prev: Record) => Record, + }), replace: true, }) } diff --git a/packages/admin/src/routes/_authenticated/accounts/$accountId/enrollments.tsx b/packages/admin/src/routes/_authenticated/accounts/$accountId/enrollments.tsx index cc3bba1..91a2104 100644 --- a/packages/admin/src/routes/_authenticated/accounts/$accountId/enrollments.tsx +++ b/packages/admin/src/routes/_authenticated/accounts/$accountId/enrollments.tsx @@ -41,7 +41,7 @@ function AccountEnrollmentsTab() {

{data?.pagination.total ?? 0} enrollment(s)

{hasPermission('lessons.edit') && ( - )} @@ -55,7 +55,7 @@ function AccountEnrollmentsTab() { total={data?.data?.length ?? 0} onPageChange={() => {}} onSort={() => {}} - onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { tab: 'details' } })} />
) diff --git a/packages/admin/src/routes/_authenticated/accounts/$accountId/members.tsx b/packages/admin/src/routes/_authenticated/accounts/$accountId/members.tsx index 5bf9b6b..2925d07 100644 --- a/packages/admin/src/routes/_authenticated/accounts/$accountId/members.tsx +++ b/packages/admin/src/routes/_authenticated/accounts/$accountId/members.tsx @@ -281,7 +281,7 @@ function MembersTab() { navigate({ to: '/members/$memberId', params: { memberId: m.id }, - search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const }, + search: { tab: 'details' }, })}> Edit diff --git a/packages/admin/src/routes/_authenticated/inventory/$productId.tsx b/packages/admin/src/routes/_authenticated/inventory/$productId.tsx index 526f175..ff456cd 100644 --- a/packages/admin/src/routes/_authenticated/inventory/$productId.tsx +++ b/packages/admin/src/routes/_authenticated/inventory/$productId.tsx @@ -192,7 +192,7 @@ function ProductDetailPage() {
{/* Header */}
-
diff --git a/packages/admin/src/routes/_authenticated/inventory/index.tsx b/packages/admin/src/routes/_authenticated/inventory/index.tsx index d9cf96c..9ec153f 100644 --- a/packages/admin/src/routes/_authenticated/inventory/index.tsx +++ b/packages/admin/src/routes/_authenticated/inventory/index.tsx @@ -71,7 +71,7 @@ function InventoryPage() { queryClient.invalidateQueries({ queryKey: productKeys.all }) toast.success('Product created') setCreateOpen(false) - navigate({ to: '/inventory/$productId', params: { productId: product.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } }) + navigate({ to: '/inventory/$productId', params: { productId: product.id }, search: { tab: 'details' } }) }, onError: (err) => toast.error(err.message), }) @@ -246,7 +246,7 @@ function InventoryPage() { order={params.order} onPageChange={setPage} onSort={setSort} - onRowClick={(p) => navigate({ to: '/inventory/$productId', params: { productId: p.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(p) => navigate({ to: '/inventory/$productId', params: { productId: p.id }, search: { tab: 'details' } })} />
) diff --git a/packages/admin/src/routes/_authenticated/lessons/enrollments/$enrollmentId.tsx b/packages/admin/src/routes/_authenticated/lessons/enrollments/$enrollmentId.tsx index e52e2da..7829e2d 100644 --- a/packages/admin/src/routes/_authenticated/lessons/enrollments/$enrollmentId.tsx +++ b/packages/admin/src/routes/_authenticated/lessons/enrollments/$enrollmentId.tsx @@ -131,7 +131,7 @@ function EnrollmentDetailPage() { return (
-
@@ -344,7 +344,7 @@ function SessionsTab({ enrollmentId, onGenerate, generating }: { enrollmentId: s total={data?.data?.length ?? 0} onPageChange={() => {}} onSort={() => {}} - onRowClick={(s) => navigate({ to: '/lessons/sessions/$sessionId', params: { sessionId: s.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(s) => navigate({ to: '/lessons/sessions/$sessionId', params: { sessionId: s.id }, search: {} })} />
) @@ -383,7 +383,7 @@ function LessonPlanTab({ enrollmentId, memberId, canEdit }: { enrollmentId: stri queryClient.invalidateQueries({ queryKey: lessonPlanKeys.all }) toast.success('Plan created from template') setTemplatePickerOpen(false) - navigate({ to: '/lessons/plans/$planId', params: { planId: plan.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } }) + navigate({ to: '/lessons/plans/$planId', params: { planId: plan.id }, search: {} }) }, onError: (err) => toast.error(err.message), }) @@ -401,7 +401,7 @@ function LessonPlanTab({ enrollmentId, memberId, canEdit }: { enrollmentId: stri {Math.round(activePlan.progress)}% complete

-
diff --git a/packages/admin/src/routes/_authenticated/lessons/enrollments/index.tsx b/packages/admin/src/routes/_authenticated/lessons/enrollments/index.tsx index c14753a..205d680 100644 --- a/packages/admin/src/routes/_authenticated/lessons/enrollments/index.tsx +++ b/packages/admin/src/routes/_authenticated/lessons/enrollments/index.tsx @@ -80,7 +80,7 @@ function EnrollmentsListPage() {

Enrollments

{hasPermission('lessons.edit') && ( - )} @@ -125,7 +125,7 @@ function EnrollmentsListPage() { order={params.order} onPageChange={setPage} onSort={setSort} - onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { tab: 'details' } })} />
) diff --git a/packages/admin/src/routes/_authenticated/lessons/enrollments/new.tsx b/packages/admin/src/routes/_authenticated/lessons/enrollments/new.tsx index 88b95d2..4ad8b19 100644 --- a/packages/admin/src/routes/_authenticated/lessons/enrollments/new.tsx +++ b/packages/admin/src/routes/_authenticated/lessons/enrollments/new.tsx @@ -108,7 +108,7 @@ function NewEnrollmentPage() { }, onSuccess: (enrollment) => { toast.success('Enrollment created') - navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: enrollment.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } }) + navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: enrollment.id }, search: { tab: 'details' } }) }, onError: (err) => toast.error(err.message), }) @@ -141,7 +141,7 @@ function NewEnrollmentPage() { return (
-

New Enrollment

@@ -282,7 +282,7 @@ function NewEnrollmentPage() { -
diff --git a/packages/admin/src/routes/_authenticated/lessons/schedule/index.tsx b/packages/admin/src/routes/_authenticated/lessons/schedule/index.tsx index b36b969..18e0a9b 100644 --- a/packages/admin/src/routes/_authenticated/lessons/schedule/index.tsx +++ b/packages/admin/src/routes/_authenticated/lessons/schedule/index.tsx @@ -152,7 +152,7 @@ function InstructorsTab({ canAdmin, search: _search }: { canAdmin: boolean; sear order={params.order} onPageChange={setPage} onSort={setSort} - onRowClick={(i) => navigate({ to: '/lessons/schedule/instructors/$instructorId', params: { instructorId: i.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(i) => navigate({ to: '/lessons/schedule/instructors/$instructorId', params: { instructorId: i.id }, search: { tab: 'overview' } })} />
) diff --git a/packages/admin/src/routes/_authenticated/lessons/sessions/$sessionId.tsx b/packages/admin/src/routes/_authenticated/lessons/sessions/$sessionId.tsx index 0824dae..094e560 100644 --- a/packages/admin/src/routes/_authenticated/lessons/sessions/$sessionId.tsx +++ b/packages/admin/src/routes/_authenticated/lessons/sessions/$sessionId.tsx @@ -126,7 +126,7 @@ function SessionDetailPage() { return (
-
diff --git a/packages/admin/src/routes/_authenticated/members/$memberId.tsx b/packages/admin/src/routes/_authenticated/members/$memberId.tsx index b3b4a7f..8feb901 100644 --- a/packages/admin/src/routes/_authenticated/members/$memberId.tsx +++ b/packages/admin/src/routes/_authenticated/members/$memberId.tsx @@ -293,7 +293,7 @@ function MemberDetailPage() {

{enrollmentsData?.pagination.total ?? 0} enrollment(s)

{hasPermission('lessons.edit') && ( - )} @@ -307,7 +307,7 @@ function MemberDetailPage() { total={enrollmentsData?.data?.length ?? 0} onPageChange={() => {}} onSort={() => {}} - onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(e) => navigate({ to: '/lessons/enrollments/$enrollmentId', params: { enrollmentId: e.id }, search: { tab: 'details' } })} />
)} diff --git a/packages/admin/src/routes/_authenticated/members/index.tsx b/packages/admin/src/routes/_authenticated/members/index.tsx index 5e69c9c..e99a34f 100644 --- a/packages/admin/src/routes/_authenticated/members/index.tsx +++ b/packages/admin/src/routes/_authenticated/members/index.tsx @@ -84,7 +84,7 @@ function MembersListPage() { - navigate({ to: '/members/$memberId', params: { memberId: row.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })}> + navigate({ to: '/members/$memberId', params: { memberId: row.id }, search: { tab: 'details' } })}> Edit @@ -134,7 +134,7 @@ function MembersListPage() { order={params.order} onPageChange={setPage} onSort={setSort} - onRowClick={(member) => navigate({ to: '/members/$memberId', params: { memberId: member.id }, search: { page: 1, limit: 25, q: undefined, sort: undefined, order: 'asc' as const } })} + onRowClick={(member) => navigate({ to: '/members/$memberId', params: { memberId: member.id }, search: { tab: 'details' } })} />
) diff --git a/packages/admin/src/routes/_authenticated/repairs/index.tsx b/packages/admin/src/routes/_authenticated/repairs/index.tsx index db0ecb1..71150cf 100644 --- a/packages/admin/src/routes/_authenticated/repairs/index.tsx +++ b/packages/admin/src/routes/_authenticated/repairs/index.tsx @@ -137,7 +137,7 @@ function RepairsListPage() {

Repairs

{hasPermission('repairs.edit') && ( -