Target Location
apps/mobile/components/seating/SeatingCanvas.tsx, apps/mobile/components/seating/SeatNode.tsx, apps/mobile/hooks/useSeatingLayout.ts
Problem Statement
Reserved seating events require rendering complex venue maps with thousands of interactive seats (stages, sections, rows, individual seats) while maintaining a fluid 60 FPS mobile UI during panning, zooming, and seat selection.
Technical Requirements
- High-Performance Vector Graphics Engine:
- Implement a venue chart renderer using React Native Skia (
@shopify/react-native-skia) or React Native SVG with native Gesture Handler & Reanimated v3.
- Render up to 10,000 seats with dynamic spatial indexing (QuadTree / R-Tree) for viewport frustum culling.
- Interactive Selection & Viewport Control:
- Smooth 2D pinch-to-zoom (0.5x to 8x scale) and two-finger pan with momentum decay physics.
- Real-time seat state rendering (Available = Accent, Reserved = Muted Gray, Selected = Vibrant Blue, VIP = Gold gradient).
- WebSocket Real-Time Seat Locking:
- Integrate WebSocket room subscriptions for live seat lock updates. When another user selects a seat, it locks instantly with a visual countdown timer across all mobile clients.
- Accessibility Focus Traversal:
- Build a screen-reader (TalkBack / VoiceOver) grid navigation layer allowing directional traversal across sections, rows, and seat numbers.
Target Location
apps/mobile/components/seating/SeatingCanvas.tsx,apps/mobile/components/seating/SeatNode.tsx,apps/mobile/hooks/useSeatingLayout.tsProblem Statement
Reserved seating events require rendering complex venue maps with thousands of interactive seats (stages, sections, rows, individual seats) while maintaining a fluid 60 FPS mobile UI during panning, zooming, and seat selection.
Technical Requirements
@shopify/react-native-skia) or React Native SVG with native Gesture Handler & Reanimated v3.