Place Composer — One Composer for All

The full home composer becomes place-aware. A destination chip + a Post | Issue type selector extends the existing composer. The lightweight issue-report sheet is retired — issues and posts both land in the place feed as the same post type.

Same composer, POST mode — from place page Same composer, ISSUE mode — civic extras revealed Entry points on the place page (Feed + Issues tabs) Destination picker sheet
SCREEN 1

Composer · POST mode

Opened from a place page. Destination pre-filled; type selector defaults to Post. Full media chips row active.

9:41
New Post
Posting to → Mahaji Khalpura Bala
Post
Issue
R
Rakesh Sharma
Mahaji Khalpura Bala · Village
Share something with your village…
Photo
Camera
Video
GIF
Poll
Mahaji Khalpura Bala ✕
Allow comments
One-composer rule
  • Destination chip pre-filled from the place page. Tapping opens the picker sheet (Screen 4).
  • Type selector row is the only new element — rest of the composer is unchanged from the existing create_post.page.dart.
  • Post button stays dim until the user types or attaches media (existing canPost logic).
SCREEN 2

Composer · ISSUE mode

Category chips + title field + routing preview revealed. Poll/GIF hidden. Photo/Video/Camera stay — evidence is vital.

9:41
Report Issue
Posting to → Mahaji Khalpura Bala
Post
Issue
Category
🛣 Road
💧 Water
⚡ Electricity
🔦 Streetlight
🚮 Sanitation
🌊 Drainage
🏥 Health
📋 Scheme
🛣 Highway
⋯ Other
Short description of the problem
Water supply cut since 3 days in main ward
R
Rakesh Sharma
Mahaji Khalpura Bala · Village
Add details (optional)…
Add evidence photo
Routes to
Surendra Ram (MLA, Garkha)
Based on category + your location
Photo
Camera
Video
GIF
Poll
Mahaji Khalpura Bala ✕
Allow comments
Issue mode — what changes
  • Revealed: Category chips (10 from live i18n strings), title field, routing preview card.
  • Hidden / disabled: GIF + Poll chips (evidence-only media makes sense; opacity 0.35 + no tap).
  • Issue = a post with a civic sub-type — same regionIds attachment, same place feed, same like/comment surface.
  • Title field maps to post title; category maps to a post tag; routing is computed server-side from category + region constituency data.
SCREEN 3

Entry Points · Place Page

Feed tab compose bar → POST mode. Issues tab banner → ISSUE mode pre-selected. Same composer, different initial type.

9:41

Mahaji Khalpura Bala Village

Feed 12
Issues 4
About
Stewards
R
Share something with your village…
→ Opens POST mode
Anita Devi · 2h
नई सड़क का काम शुरू हो गया, धन्यवाद सभी को! 🎉 Finally the road repair work has started near the panchayat office.
34
8
12
Suresh Kumar · 5h
Village clean-up drive this Sunday at 7am. All residents welcome. Meet at the temple gate.
18
3
↓ Switch to Issues tab
Feed 12
Issues 4
About
Report a problem
Road, water, electricity… routed to the right authority
→ Opens ISSUE mode
OPEN
💧 Water · Reported 2d ago
Hand pump broken near school — children using unsafe water
Routed → Surendra Ram (MLA, Garkha)
47 support
Entry point defaults
  • From place page Feed tab: compose bar → opens composer in POST mode, destination pre-set to that place.
  • From place page Issues tab: "Report a problem" banner → opens same composer in ISSUE mode, same destination.
  • From home FAB (no place context): no destination chip pre-set; user must pick from destination picker. Default = your home place (primaryLocation).
  • Destination is always visible and changeable — no hidden defaults.
SCREEN 4

Destination Picker Sheet

Tapping the "Posting to →" chip. Search field + place tiles with breadcrumb. "Your place" shortcut pinned at top.

9:41
R
Share something…

Post to a place

Choose where this goes — or search any location in India

Search village, block, district…
My place — Mahaji Khalpura Bala
Village · Garkha Block, Saran, Bihar
Nearby Places
Garkha Block
Block · Saran District, Bihar
Mahaji Khalpura Upar
Village · Garkha Block, Saran, Bihar
Khanpur Bala
Village · Garkha Block, Saran, Bihar
Saran District
District · Bihar
Rajpur Bishun
Village · Garkha Block, Saran, Bihar
Destination picker — design decisions
  • "Your place" shortcut always pinned first — resolves from user's primaryLocation. Shown with a home pin icon.
  • Tile breadcrumb format: name · type · district, state — matches location_search_sheet.dart result tiles.
  • Search backed by the same Typesense location endpoint used by the existing location search sheet (/location/search).
  • From a place page → that place is pre-selected (checkmark). User can still switch.
  • From home FAB → "Your place" is highlighted but not pre-selected; user confirms or picks another.
Architecture decisions — owner-locked
One Composer Rule
The lightweight issue-report sheet is retired. All creation flows — post, issue, media — go through CreatePostPage. The only additions are the destination chip and the Post | Issue type selector row.
Issue = Post sub-type
An issue is stored as a normal post with a civic sub-type flag and category tag. It carries the same regionIds, appears in the place feed alongside normal posts, and supports the same like/comment/share surface. No separate data model needed.
Hidden in Issue mode
GIF and Poll chips are disabled (opacity 0.35, non-tappable). Photo, Camera, and Video chips remain active — evidence photos/videos are the most important civic attachment. The title field and category chips are revealed instead.
Destination defaults
From a place page → destination pre-filled with that place; user can tap to change. From home FAB → picker opens with user's primaryLocation highlighted as "Your place"; always changeable and visible.
Place Composer · place-composer.html · Nyburs newUX · One composer — posts, issues, evidence — all routed by place.