Skip to content

Feature: Split ExplorePage into tab and section modules (EPIC-3.5) #13458

Description

@masvelio

Summary

Decompose ExplorePage into a stable tab shell plus clearer section modules for feature-owned discovery content.

Problem / Motivation

ExplorePage is smaller than the thread/discussions pages, but it now carries prediction-market discovery UI in addition to quests and other discovery sections. Keeping it as a single container slows later feature migration and keeps ownership unclear between the page shell and section-level features.

Proposed Solution

  • Split ExplorePage into a tab shell and explicit feature-owned sections.
  • Treat prediction-market discovery surfaces as first-class scope, not incidental UI.
  • Isolate section-specific state, filters, and list wiring from the page shell where possible.
  • Preserve current tab navigation, search/filter behavior, and route behavior.

Acceptance Criteria

  • ExplorePage is decomposed into a tab shell plus section-level modules.
  • Prediction-market discovery components are no longer embedded as ad-hoc page internals.
  • Tab switching, search, and filter behavior remain unchanged.
  • The resulting structure is ready for EPIC-4.15 feature migration.
  • Build/typecheck and relevant component/E2E checks pass.

Alternatives Considered

  • Defer all Explore cleanup to EPIC-4.15. This was rejected because the page now contains cross-feature discovery UI that should be normalized before migration.
  • Keep prediction-market discovery inside the page while splitting only the tab shell. This was rejected because it leaves the newest high-risk surface unowned.

Impact

This reduces migration risk for discovery surfaces, especially prediction markets, and creates a cleaner Explore shell for later feature moves.

Links

Additional Context

The latest plan audit explicitly pulls prediction-market discovery into EPIC-3/4 scope. Keep this issue focused on page normalization and ownership boundaries rather than a full feature move.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions