Skip to content

feat:Add empty states and skeleton loaders to dashboard and stream list - #394

Merged
ogazboiz merged 1 commit into
LabsCrypt:mainfrom
SheyeJDev:feat/Add-empty-states-and-skeleton-loaders-to-dashboard-and-stream-list
Apr 28, 2026
Merged

feat:Add empty states and skeleton loaders to dashboard and stream list#394
ogazboiz merged 1 commit into
LabsCrypt:mainfrom
SheyeJDev:feat/Add-empty-states-and-skeleton-loaders-to-dashboard-and-stream-list

Conversation

@SheyeJDev

@SheyeJDev SheyeJDev commented Apr 28, 2026

Copy link
Copy Markdown

PR: Improve UX, Validation, Contributor Onboarding & Mobile Responsiveness
Overview

This PR delivers a set of critical improvements across the frontend, backend, and developer experience. It focuses on:

Better dashboard UX with loading, empty, and error states

Strong input validation for Stellar addresses and stream amounts

Clear contribution guidelines for new developers

Mobile-first responsiveness for core layouts

Changes Included

  1. Dashboard UX Enhancements

Improved user experience when loading or when no data is available.

What was added:

Skeleton loaders (3 shimmer cards) for GET /v1/streams

Empty states:

No outgoing streams → CTA: "Create your first stream"

No incoming streams → "No streams are sending you funds yet"

No activity → "No stream activity yet"

Error state:

Message: "Failed to load streams"

Retry button for failed API calls

Files:

frontend/src/components/dashboard/dashboard-view.tsx

frontend/src/components/IncomingStreams.tsx

  1. Backend Validation (Zod)

Added strict validation for Stellar addresses and stream amounts.

What was implemented:

Stellar address validation:

z.string().regex(/^G[A-Z2-7]{55}$/, 'Invalid Stellar address')

Applied to:

GET /v1/streams?sender=

GET /v1/streams?recipient=

GET /v1/users/{address}/summary

Amount validation:

Must be a positive decimal string parseable to bigint

Returns:

400 Bad Request with clear error messages on invalid input

Added test coverage for valid/invalid inputs

Files:

backend/src/routes/v1/stream.routes.ts

backend/src/routes/v1/user.routes.ts

  1. Contributor Experience

Introduced clear contribution guidelines and community standards.

What was added:

CONTRIBUTING.md

Issue workflow & labels (good first issue, backend, frontend, etc.)

Branch naming: feature/issue-N-short-description

Commit convention: Conventional Commits (feat:, fix:, etc.)

Test instructions:

Backend → npm test

Contracts → cargo test

PR checklist (tests, lint, clear description)

Review request process

CODE_OF_CONDUCT.md

Based on Contributor Covenant v2.1

Linked both files in README.md

  1. Mobile Responsiveness

Optimized layout and navigation for mobile devices.

What was improved:

Sidebar hidden on screens < md

Added bottom navigation bar:

Dashboard

Create

Activity

Settings

Fixed layout issues:

No horizontal overflow at 375px

Responsive stream cards

Scrollable StreamCreationWizard steps

Files:

frontend/src/app/layout.tsx

frontend/src/components/Navbar.tsx

Closes #382
Closes #384
Closes #380
Closes #379

@ogazboiz
ogazboiz merged commit d16912b into LabsCrypt:main Apr 28, 2026
6 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants