Skip to content

Wire 18 new standalone components into their pages #313

Open

Description

@AnayDhawan

Commit 09d9036 added 16 new, working, typed components as a components-first pass — none of them are imported or rendered anywhere yet. Each is ready to drop into a real flow; this issue tracks actually doing that.

(Originally 18 - the two maintainer/ components were removed, admin tooling isn't something this project needs.)

map/

  • place-detail-drawer.tsx (PlaceDetailDrawer) — a fuller detail view than the pin popup. Natural home: opened from a pin click or a results-list row, alongside/instead of the existing popup.
  • compare-places-sheet.tsx (ComparePlacesSheet) — side-by-side compare of 2-3 places. Needs a selection UI (e.g. a "compare" checkbox on results-list rows) to collect the places to compare.
  • filter-presets.tsx (FilterPresets) — quick filter-combo buttons. Natural home: map-panel.tsx, near the category chips.
  • heatmap-toggle.tsx (HeatmapToggle) — control only, no heatmap rendering yet. Needs map-view.tsx wiring to actually visualize density before this is useful.
  • directions-modal.tsx (DirectionsModal) — Google/Apple/geo: deep links. Natural home: pin popup or place-detail-drawer, as a "Directions" action.
  • report-issue-dialog.tsx (ReportIssueDialog) — "report a problem with this place". Natural home: pin popup or place-detail-drawer.
  • category-icon.tsx (CategoryIcon) — shared type-to-icon mapping. Could replace the duplicated colour-dot-only styling currently in category-chips.tsx, pin-popup.tsx, and results-list.tsx.

pins/

  • place-review-badge.tsx (PlaceReviewBadge) — takes rating/reviewCount as explicit props (the Place schema has no such fields). No current caller passes them; needs a decision on whether/where rating data would ever live before this renders anything.
  • exam-centre-countdown.tsx (ExamCentreCountdown) — valid_till expiry badge. Natural home: pin popup, next to VerifiedBadge, for sat_centre/foreign_lang_exam_centre places.

home/

  • city-switcher.tsx (CitySwitcher) — natural home: navbar or homepage hero.
  • city-stats-card.tsx (CityStatsCard) — natural home: /city/[slug] pages.
  • recent-additions-feed.tsx (RecentAdditionsFeed) — presentation-only; the schema has no added-on date, so real recency ordering needs that field first (see note in the component's own doc comment).

sharing

  • share-place-card.tsx (SharePlaceCard) — natural home: place-detail-drawer or pin popup.
  • route-eta-card.tsx (RouteEtaCard) — straight-line distance/ETA from the user's home. Natural home: pin popup or place-detail-drawer, when home is set.

community

  • contribution-leaderboard.tsx (ContributionLeaderboard) — natural home: /about, /contribute, or a new /community page.
  • place-photo-gallery.tsx (PlacePhotoGallery) — scoped down to a Street View embed, not real photos (no photo field in the schema). Natural home: place-detail-drawer.

Activity

  1. propcgamer20-png commented on Nov 6, 2026

    @propcgamer20-png
    Member

    Progress against this checklist, as of 2026-11-06:

    On main: FilterPresets, DirectionsModal and ReportIssueDialog (#331), CityStatsCard, ExamCentreCountdown, then ContributionLeaderboard (on /about), CitySwitcher (hero) and RouteEtaCard (pin popup, when a home is saved) in #335.

    In #338 (open, conflict with main resolved today): PlaceDetailDrawer, ComparePlacesSheet, SharePlaceCard, PlacePhotoGallery and CategoryIcon.

    Still unwired, and why:

    • PlaceReviewBadge takes rating and review count, and the Place schema has neither.
    • RecentAdditionsFeed is presentation-only, and the schema has no added-on date to order by.
    • HeatmapToggle is a control with no heatmap rendering behind it.

    All three need a decision on data or rendering first, so this issue is probably best left open for those three, or closed with a follow-up issue each once #338 merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions