Guillermo Pages
|
f39e3542ed
|
refactor: add TanStack Query and centralized abstractions
continuous-integration/drone/push Build is passing
Details
- Install @tanstack/react-query and devtools
- Add QueryProvider to app providers
- Create query hooks: useBookings, useClubs, useClubMembers, useClubPlans, useClubCredits, useClubPolicy
- Create mutation hooks: useMemberMutations, usePlanMutations
- Add ModalFormWrapper component for consistent form modals
- Centralize skeleton configuration (sizes, shapes) in skeletonConfig.ts
- Add error handling utilities (getApiErrorMessage, isApiError)
- Add size configuration utilities for consistent component sizing
- Update AvatarSkeleton, IconSkeleton, PlayerItemSkeleton to use centralized config
|
2 weeks ago |
Guillermo Pages
|
c275bf1dcc
|
feat(phase-0): integrate admin clubs API with staging backend
Phase 0 venue admin integration complete:
- Implemented GET /admin/clubs API integration
- Three-state response handling: 401 (auth), empty (no access), success (club list)
- RFC-7807 error handling with proper error display
- Club cards with navigation to detail pages
- Staging environment configuration (.env.staging)
- TypeScript interfaces aligned with VENUE_ADMIN_DESIGN.md
Integration points:
- API base URL: https://staging.api.playchoo.com
- Endpoints: /admin/clubs, /admin/clubs/{club_id}
- Auth: Cookie-based SwissOID (handled by API)
- Stub mode: Clubs 3 (Central Padel) and 7 (Riverside Tennis)
Files changed:
- src/app/[locale]/admin/clubs/page.tsx: API integration
- src/lib/api/admin-clubs.ts: API client with mock data
- src/types/admin-api.ts: TypeScript interfaces
- .env.staging: Staging configuration
Ready for:
- Live testing against staging stubs
- E2E tests with admin accounts (pending Access Avery seeding)
Refs: VENUE_ADMIN_DESIGN.md, VENUE_ADMIN_EXECUTION_PLAN.md
|
1 month ago |