Documentation Index
Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Navegacion
La app Vivla utiliza Expo Router 6 con file-based routing y typed routes. Toda la estructura de navegacion se define a traves de la jerarquia de archivos en el directorioapp/.
Root Layout
El punto de entrada (app/_layout.tsx) configura un Stack Navigator envuelto en multiples providers, cada uno aportando una funcionalidad clave:
El componente raiz esta envuelto con
Sentry.wrap() para capturar errores automaticamente. Se
llama a SplashScreen.preventAutoHideAsync() al inicio y se oculta el splash screen cuando
appIsReady es true.Screens del Root Stack
| Screen | Animacion | Descripcion |
|---|---|---|
index | - | Pantalla inicial (redirecciona) |
loading | LOADING_FADE | Pantalla de carga durante inicializacion |
error | FADE | Pantalla de error (timeout o fallo critico) |
deep-link-error | FADE | Error de deep link (params invalidos) |
(onboarding) | SLIDE_RIGHT | Flujo de onboarding |
(auth) | FADE | Pantallas de autenticacion |
(tabs) | FADE | Tab Navigator principal |
chat | SLIDE_RIGHT | Stack de mensajeria |
survey | modal | Encuesta generica (presentacion modal) |
Animation Presets
Los presets de animacion se definen ensrc/shared/constants/navigation.ts:
Tab Navigator
El Tab Navigator (app/(tabs)/_layout.tsx) define 5 tabs con iconos SVG custom:
01_home
Stack Navigator: index, gallery, amenities
02_book
Material Top Tabs: book-stays, exchange-stays, rent-stays
03_inbox
Stack Navigator: index, archived, search (badge de no leidos)
04_stays
Material Top Tabs: active, past, cancelled, pending
05_profile
Stack Navigator: index
Property Selection Gate
Navegacion basada en rol
- Property Owners
- Visitors / Guests
- 02_book: Material Top Tabs con book-stays, exchange-stays, rent-stays y un indicador de
llaves disponibles (
HeaderKeysIndicator) - 04_stays: Material Top Tabs con active, past, cancelled, pending yBookingToastProvider
Modal Stacks
Chat (app/chat/)
Stack con animacion slide_from_right:
| Ruta | Descripcion |
|---|---|
[channelType]/[channelId]/index | Pantalla de conversacion |
[channelType]/[channelId]/info | Informacion del canal |
invite | Modal de invitacion (animacion slide_from_bottom, presentacion modal) |
Booking (app/booking/)
Usa Slot envuelto en BookingToastProvider:
| Ruta | Descripcion |
|---|---|
[id] | Detalle de reserva |
new | Nueva reserva |
review | Resena de estadia (SurveyScreen slug=“stay-review”) |
wallet | Wallet de usuario |
Property (app/property/)
| Ruta | Descripcion |
|---|---|
[id] | Detalle de propiedad |
home-review | Home review (SurveyScreen slug=“home-review”) |
arrival-review | Revision de llegada (SurveyScreen slug=“arrival-review”) |
rating-report | Reporte de calificacion |
Invite (app/invite/)
| Ruta | Descripcion |
|---|---|
[token] | Invitacion por token |
owner/[bookingId] | Invitacion de propietario |
onboarding | Onboarding de invitacion |
Issues (app/issues/)
Stack con BackButton fijo, que contiene Material Top Tabs:
| Tab | Descripcion |
|---|---|
active | Incidencias activas |
pending | Incidencias pendientes |
upgrade | Mejoras solicitadas |
closed | Incidencias cerradas |
Arbol de Rutas Completo
Las rutas publicas (que no requieren autenticacion) estan definidas en
NAVIGATION_CONFIG.PUBLIC_GROUPS: (onboarding), (auth) e invite. El hook useNavigation
gestiona las redirecciones segun el estado de autenticacion.