Skip to content

feat: complete stream detail page redesign with moon theme - #1171

Merged
Folex1275 merged 6 commits into
StellarStream-HQ:mainfrom
Codex723:feature/stream-detail-redesign-moon-theme
Jun 18, 2026
Merged

feat: complete stream detail page redesign with moon theme#1171
Folex1275 merged 6 commits into
StellarStream-HQ:mainfrom
Codex723:feature/stream-detail-redesign-moon-theme

Conversation

@Codex723

@Codex723 Codex723 commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Pull Request: Stream Detail Page Redesign — Moon Theme

Closes #1170

Branch

feature/stream-detail-redesign-moon-theme

Description

Complete redesign of the individual stream detail page with a moon theme, enhanced data visualization, action buttons, and real-time WebSocket updates.

Changes Made

Modified Files

  • frontend/app/stream/[id]/page.tsx — Added nebula background blobs, updated layout for new component integration
  • frontend/components/view-stream-client.tsx — Complete rewrite integrating all new stream components with WebSocket real-time updates

Screenshots

Desktop — Header & Live Counter

Screenshot 2026-06-17 143642

Desktop — Progress, Flow Rate & Chart

Screenshot 2026-06-17 143658

Desktop — Quick Actions & Transaction History

Screenshot 2026-06-17 143713

New Components (frontend/components/stream/)

  • stream-header.tsx — Header card with org avatar, stream name, status badge (active/paused/ended), sender/receiver info, time remaining
  • flow-rate-gauge.tsx — Animated SVG semi-circle gauge showing flow rate with color shift (cyan to green), tick marks, live rate display
  • progress-bar.tsx — Animated progress bar with green → yellow → red color shift based on completion percentage, days/weeks remaining
  • balance-projection-chart.tsx — Recharts area chart showing streamed amount over time with projection line (dashed), color-coded by progress
  • transaction-history.tsx — Paginated transaction list (20 per page) with type icons, status badges (confirmed/pending/failed), hover animations
  • action-buttons.tsx — 5 action buttons (Pause, Resume, Withdraw, Top Up, Cancel) with ripple animation, modal dialogs showing gas estimates
  • stream-skeleton.tsx — Loading skeleton with shimmer animations for all sections
  • stream-error.tsx — Error state with animated icon, retry button, and guidance text

Key Features Implemented

  • ✅ Header displays stream name, recipient, status badge
  • ✅ Flow rate gauge animates smoothly with SVG arc
  • ✅ Progress bar shows days/weeks remaining with color change (green → yellow → red)
  • ✅ Chart renders with smooth animation (Recharts AreaChart)
  • ✅ Transaction history loads paginated (20 per page)
  • ✅ All action buttons have hover effects + ripple animation
  • ✅ Clicking action buttons opens correct modal
  • ✅ Modal shows gas estimate for operation
  • ✅ Mobile layout stacks single column
  • ✅ Loading state shows skeleton components
  • ✅ Error state shows retry button
  • ✅ Accessibility: aria-labels, keyboard nav, semantic structure
  • ✅ Real-time updates (WebSocket via socket.io) refresh data smoothly

Design System

  • Stellar Glass design system with glass-card aesthetic
  • Moon theme with nebula gradient blobs
  • Dark glassmorphism with backdrop-blur
  • Cyan and violet accent colors
  • Responsive grid layout (single column on mobile, multi-column on desktop)

Testing

  • Components are modular and composable
  • All states covered: loading (skeleton), error (retry), empty, and populated data
  • WebSocket connection is optional — gracefully falls back to polling

StellarStream Dev added 6 commits June 17, 2026 11:33
- Redesigned stream/[id]/page.tsx with moon theme nebula backgrounds
- Created StreamHeader component with org avatar, status badge, sender/receiver
- Created FlowRateGauge with animated SVG semi-circle gauge (green to cyan)
- Created BalanceProjectionChart using Recharts with green-yellow-red color shift
- Created ProgressBar with animated progress and days/weeks remaining display
- Created TransactionHistory with pagination (20 per page), type icons, status badges
- Created ActionButtons with 5 action buttons, ripple animation, and modals
- Created StreamSkeleton for loading states with shimmer effects
- Created StreamError with retry button
- Updated ViewStreamClient with WebSocket real-time updates (socket.io)
- All components use Stellar Glass design system with glass-card aesthetic
- Mobile-first single column layout with responsive grid
- Loading skeleton and error state with retry functionality
- Accessibility: aria-labels, keyboard navigation, semantic structure
- Removed 'socket' from attemptReconnect useCallback dependency (caused infinite re-renders)
- Changed to use socketRef instead of closure socket variable for reconnect
- Changed useEffect dependency from [attemptReconnect] to [] (runs once)
- Used attemptReconnectRef pattern to avoid stale closure issues
The early return guard if (!CONTRACT_ID || !streamId) return null; caused
mock data to never be reached in dev mode. Restructured so mock/demo data
is returned when CONTRACT_ID is not configured, allowing the stream detail
page to render without Stellar RPC credentials.
…aria-live region

- Progress bar: color changes based on TIME REMAINING (green >50%, yellow
  20-50%, red <20%) per spec, not based on percent complete
- Progress bar: time-remaining label now renders ON the bar itself with
  adaptive text color (dark on light fill, light on dark fill)
- Live counter: added role='status' and aria-live='polite' so screen readers
  announce streaming updates
- Rate display: aria-label on rate text, aria-hidden on decorative icon
@Folex1275
Folex1275 merged commit bdf08ea into StellarStream-HQ:main Jun 18, 2026
3 checks passed
@grantfox-oss grantfox-oss Bot mentioned this pull request Jun 18, 2026
13 tasks
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.

Redesign Stream Details Page

2 participants