Skip to content

Issue 002: Split app structure #3

Description

@cody257

Blocked by #1 — wait for PR #2 (test/lint foundation) to merge so this branch starts on a main that has CI gates in place.

Goal: make the app easy for multiple agents to edit.

Owned files

  • src/App.jsx
  • src/main.jsx
  • new src/pages/*
  • new src/layouts/*
  • new src/features/*

Tasks

  • Move landing screen out of App.jsx.
  • Move buyer screen out of App.jsx.
  • Move seller screen out of App.jsx.
  • Add a small app shell.
  • Keep behavior the same.

Acceptance criteria

  • User can still pick buyer/seller.
  • Seller generator still works.
  • Buyer placeholder still renders.
  • npm run lint, npm test, and npm run build all pass.
  • GitHub Actions runs all three.

Branch / PR rules

  • Branch name: agent/002-app-structure
  • Branch from main after Issue 001: Test and lint foundation #1 has merged.
  • Do not touch unrelated files (no package.json, no vite.config.js, no styling overhauls — those are later issues).
  • Do not commit secrets.
  • One PR, must pass CI, must be reviewed before merge.

Suggested split (non-binding)

  • src/main.jsx keeps createRoot only.
  • src/layouts/AppShell.jsx — header/footer chrome shared across pages.
  • src/pages/LandingPage.jsx — buyer/seller picker.
  • src/pages/SellerPage.jsx — current seller flow.
  • src/pages/BuyerPage.jsx — current "Coming Soon" placeholder.
  • src/App.jsx — route table only (state machine on userType is fine for MVP — no router library required).

Routing strategy is intentionally left to the implementer; the goal is clean file boundaries, not the choice between react-router and a state-machine.

Out of scope (deferred to later issues)

  • Visual redesign / green palette → Issue 003.
  • Replacing the seller form with chat → Issue 004.
  • Building a real buyer flow → Issue 007.

See docs/HAGGLY_V2_AGENT_PLAN.md for the full plan and assignment prompt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions