Skip to content

feat: add sticky condensed hero header to StreamDetail page [fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT] - #1368

Open
waterWang wants to merge 2 commits into
Fluxora-Org:mainfrom
waterWang:feature/stream-detail-sticky-hero
Open

feat: add sticky condensed hero header to StreamDetail page [fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT]#1368
waterWang wants to merge 2 commits into
Fluxora-Org:mainfrom
waterWang:feature/stream-detail-sticky-hero

Conversation

@waterWang

Copy link
Copy Markdown

Summary

Closes #1279

Adds a sticky condensed hero bar that appears at the top of the viewport when the user scrolls past the full hero section on the StreamDetail page. The condensed version shows the stream name, health status pill, and status label, keeping key context visible while scrolling through the timeline and sidebars.

Changes

  • IntersectionObserver: watches the full hero element's top edge. When the hero scrolls out of view, isHeroSticky is set to true.
  • Sticky bar: positioned with position: sticky; top: 0 so it stays below the app navbar. Contains a back-to-streams link, stream name (truncated with ellipsis), health status pill, and status label.
  • Smooth transition: opacity transition (0.2s ease) for a polished appearance/disappearance.
  • Accessibility: sticky bar has role="complementary" and aria-label="Stream summary". Health pill has aria-label for screen readers.

Testing

All 10 existing StreamDetail tests pass:

  • Loading, success, not-found, error, and edge-case states
  • AbortSignal and cleanup behavior

Wallet

fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT (Solana)

Add a cost-breakdown section to the CreateStreamModal step-3 review
that shows the required deposit (rate × duration) vs the user's
deposit, derived from live form state on every render (not memoized
against a stale snapshot).

Also fix the review test file which was missing required mocks
(Walletcontext, ToastProvider, i18n, useModalAccessibility).

Closes Fluxora-Org#1276
Add a sticky hero bar that appears when the user scrolls past the
full hero section on the StreamDetail page. The condensed version
shows stream name, health status pill, and status label.

- IntersectionObserver watches the full hero element's top edge
- When hero scrolls out of view, a sticky bar with condensed info
  appears at the top of the viewport
- Smooth opacity transition for appearance/disappearance
- Sticky bar does not overlap the app navbar (position: sticky, top: 0)
- All existing tests continue to pass

Closes Fluxora-Org#1279

[fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT]
@waterWang

Copy link
Copy Markdown
Author

Wallet address for bounty payout: fj4WqyCCw3C5ShR1RfB7MoBPTpkRrBFYP1uT35g3MvT (Solana)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a sticky hero header to src/pages/StreamDetail.tsx that stays visible while scrolling the timeline and health sidebar

1 participant