How hansajaweerarathna/bahi-tv-preact works
Bahi TV is a remote-first hotel guest interface. A guest enters the routed app, navigates from Home to a service, and follows its screen flow; room service includes menu selection, review, and confirmation. Other documented capabilities include offers, alarms, hotel information, guest requests, Arabic/RTL, and demo states. The map shows the app router and remote-navigation layer alongside representative domain state. Some pages and integrations are unsampled; their inclusion reflects documented capabilities, while uncertain implementation links are omitted.
Main entry points: App.tsx App router · home Home screen · RoomServicePage.tsx Room service · demo-actions.ts Demo tools
Components 26
App shell
- App router
src/app/App.tsx - Document preferences
src/app/useDocumentPreferences.ts - Demo tools
src/features/demo-tools/demo-actions.ts
Guest experience
- Home screen
src/pages/home - Service tiles
src/widgets/service-tiles/tiles.ts - Greeting band
src/widgets/greeting-band - Notice strip
src/widgets/notice-strip/NoticeStrip.tsx - Offer spotlight
src/widgets/offer-spotlight/OfferSpotlight.tsx
Guest services
- Room service
src/pages/room-service/RoomServicePage.tsx - Service rows
src/pages/room-service/rows.ts - Menu item
src/pages/room-service/MenuItemPage.tsx - Order review
src/pages/room-service/OrderReviewPage.tsx - Order confirmation
src/pages/room-service/OrderDonePage.tsx - Alarm feature
src/features/alarms/model.ts - Other guest pages
src/pages
Domain state
- Offer state
src/entities/offer/model.ts - Food order state
src/features/order-food/model.ts - Housekeeping requests
src/features/request-housekeeping/model.ts - Alarm state
src/entities/alarm/model.ts - Guest data
src/entities/guest/model.ts - Guest messages
src/entities/message/model.ts - Display preferences
src/entities/preferences/model.ts
Remote navigation
- Remote control
src/shared/remote-navigation/ui/RemoteControl.tsx - Key handler registry
src/shared/remote-navigation/model/key-handlers.ts - Focus registry
src/shared/remote-navigation/model/focus-registry.ts
Other components
- Hotel guest
Connections 26
- Hotel guest → App router: uses
- App router → Home screen: routes to
src/app/App.tsx - App router → Room service: routes to
src/app/App.tsx - App router → Alarm feature: starts alarms
src/app/App.tsx - App router → Document preferences: applies preferences
src/app/App.tsx - App router → Remote control: renders
src/app/App.tsx - App router → Demo tools: shows in demo
src/app/App.tsx - App router → Other guest pages: routes to
src/app/App.tsx - Home screen → Service tiles: presents
- Home screen → Greeting band: presents
- Home screen → Notice strip: shows notices
src/widgets/notice-strip/NoticeStrip.tsx - Home screen → Offer spotlight: shows promotions
- Offer spotlight → Offer state: reads offers
src/widgets/offer-spotlight/OfferSpotlight.tsx - Room service → Service rows: builds rows
src/pages/room-service/RoomServicePage.tsx - Service rows → Food order state: uses order feature
src/pages/room-service/rows.ts - Service rows → Housekeeping requests: uses request feature
src/pages/room-service/rows.ts - Hotel guest → Menu item: selects item
- Menu item → Order review: reviews order
- Order review → Order confirmation: confirms order
- Alarm feature → Alarm state: uses alarm state
src/features/alarms/model.ts - Document preferences → Display preferences: reads preferences
src/app/useDocumentPreferences.ts - Remote control → Key handler registry: dispatches keys
src/shared/remote-navigation/index.ts - Room service → Focus registry: sets focus
src/pages/room-service/RoomServicePage.tsx - Room service → Key handler registry: registers handler
src/pages/room-service/RoomServicePage.tsx - Demo tools → Guest data: updates demo state
src/features/demo-tools/demo-actions.ts - Demo tools → Guest messages: updates demo state
src/features/demo-tools/demo-actions.ts