Viewings Feature
Viewing requests, inquiry management, and application tracking.
Location
- Feature module:
src/features/viewings/ - Routes:
src/app/(tabs)/viewings/
API Functions
| File | Function | API | Endpoint |
|---|---|---|---|
api/viewing-api.ts | — | — | Viewing operations |
api/requestViewing.ts | — | v1 | Request a viewing |
api/requestRentcafeViewing.ts | — | — | RentCafe integration (US) |
api/fetchInquiries.ts | — | — | Get inquiries list |
api/fetchInquiry.ts | — | — | Get single inquiry |
api/fetchLatestInquiryDetails.ts | — | — | Latest inquiry status |
api/cancelInquiry.ts | — | — | Cancel an inquiry |
api/hideInquiry.ts | — | — | Hide an inquiry |
api/updateInquiryStatus.ts | — | — | Update inquiry status |
api/applicationInProgress.ts | — | — | Check application status |
api/cancelApplication.ts | — | — | Cancel application |
api/submitApplication.ts | — | — | Submit rental application |
api/fetchYardiApplicationDetails.ts | — | — | Yardi CRM integration |
Hooks
| Hook | File | Description |
|---|---|---|
useViewings | hooks/use-viewings.ts | Fetches all viewings on screen focus, client-side filtering and grouping |
useOpenViewingFromParams | hooks/use-open-viewing-from-params.ts | Opens viewing detail from deep link params |
useViewings
Fetches viewings from apiV1.get('viewings.php') and provides:
- Filtering by
ViewingStatus(ALL, ACCEPTED, PENDING, SUGGESTED, CANCELLED, DECLINED, PAST) - Search by title
- Grouping into
thisWeek,thisMonth,upcoming(for ALL/ACCEPTED/PENDING filters) - Flat list for other filter states
- Auto-refetches on screen focus via
useFocusEffect
Types
ViewingStatus
enum ViewingStatus {
ALL = 'ALL',
ACCEPTED = 'ACCEPTED',
PENDING = 'PENDING',
SUGGESTED = 'SUGGESTED',
CANCELLED = 'CANCELLED',
DECLINED = 'DECLINED',
PAST = 'PAST',
}Key Interfaces
Viewing(types/viewing.ts) — Core viewing objectViewingsResult— API response grouped by time period (past, none, thisWeek, thisMonth, other, cancelled)GroupedViewings(types/grouped-viewings.ts) — Client-side grouped formatInquiry(types/inquiry.ts) — Inquiry detailsInternalViewingStatus(types/internal-viewing-status.ts) — Internal status trackingViewingRequest(types/viewing-request.ts) — Viewing request payload
Components
| Component | File | Description |
|---|---|---|
ViewingCard | components/viewing-card.tsx | Viewing list item |
ViewingInfoCard | components/viewing-info-card.tsx | Viewing detail card |
ViewingImage | components/viewing-image.tsx | Property image |
ViewingActions | components/viewing-actions.tsx | Action buttons (cancel, reschedule) |
ViewingStatusContent | components/viewing-status-content.tsx | Status display |
ViewingDetailsModal | components/viewing-details-modal.tsx | Full viewing details |
ViewingMessageSection | components/viewing-message-section.tsx | Message/notes section |
InquiryCard | components/inquiry-card.tsx | Inquiry list item |
Inquiries | components/inquiries.tsx | Inquiries list |
FurthestInquiry | components/furthest-inquiry.tsx | Most progressed inquiry |
QuickActions | components/quick-actions.tsx | Quick action buttons |
ApplicationModal | components/application-modal.tsx | Rental application form |
LeaseCompletedModal | components/lease-completed-modal.tsx | Lease completion confirmation |
RateTourModal | components/rate-tour-modal.tsx | Post-tour rating |
CircularProgressIndicator | components/circular-progress-indicator.tsx | Progress ring |
SlideableModal | components/slideable-modal.tsx | Sliding bottom sheet modal |
HelpSectionContent | components/help-section-content.tsx | Help/FAQ content |
Routes
| Route | Description |
|---|---|
(tabs)/viewings/index.tsx | Viewings list screen |
(tabs)/viewings/inquiry/[id].tsx | Inquiry detail screen |
(tabs)/viewings/manage-inquiries.tsx | Manage all inquiries |
(tabs)/viewings/rental.tsx | Rental management (HOUSR_2_0) |
Last updated on