Skip to content

feat: implement dedicated wallet selection modal interface#174

Merged
ogazboiz merged 1 commit intoLabsCrypt:mainfrom
Abidoyesimze:feature/wallet-selection-modal
Mar 7, 2026
Merged

feat: implement dedicated wallet selection modal interface#174
ogazboiz merged 1 commit intoLabsCrypt:mainfrom
Abidoyesimze:feature/wallet-selection-modal

Conversation

@Abidoyesimze
Copy link
Copy Markdown
Contributor

@Abidoyesimze Abidoyesimze commented Feb 24, 2026

closes #67

Description

  • Add WalletSelectionModal component with dark theme styling
  • Integrate modal with Navbar Connect Wallet button
  • Update WalletEntry to use modal interface
  • Add loading states during connection attempts
  • Implement error state handling with user rejection detection
  • Add professional dark theme styling with glass morphism
  • Fix dashboard build errors (getMockDashboardStats, loading/error states)
  • Connection state persistence already implemented in wallet-context

Features:

  • Modal/Page listing supported wallets (Freighter, Albedo, xBull)
  • Loading state with spinner and status messages
  • Error handling with dismiss functionality
  • Persistent connection state via localStorage
  • Keyboard support (ESC to close)
  • Responsive design
  • Accessibility attributes

Screenshot of the implementation of the design modal
image

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey, thanks for working on the wallet selection modal!

just a heads up: we actually just merged a large 'Production ready wallet integrations' epic (PR #163) which also added wallet modal components and modified the same files (Navbar.tsx, etc). because of that, this PR now has merge conflicts with main.

could you please run git fetch origin && git rebase origin/main to resolve the conflicts? this will also let you see the newly merged wallet components — you might need to adapt your changes to fit the new structure.

let us know once you've rebased and we'll take another look!

@Abidoyesimze Abidoyesimze force-pushed the feature/wallet-selection-modal branch from 2215845 to fbd8d10 Compare February 25, 2026 11:57
Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey! thanks for the UI work on the wallet selection modal.

caught a bit of scope creep in your PR though — it looks like you modified .github/workflows/ci.yml. we already merged a major wallet integration PR yesterday (#163) which touched some of these areas.

could you please rebase on main, remove the unrelated changes to the CI workflow, and check if your modal still blends well with the new wallet components from #163?

also, CI is currently failing, so fixing that rebase should help clear things up!

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey, thanks for the contribution!

just had a look at this — the backend and frontend CI checks are currently failing and there are merge conflicts with main.

could you pull the latest changes, resolve the conflicts, and take a look at the workflow logs under the "Checks" tab to fix the failing steps?

once that's sorted let us know and we'll take another look — happy to help if you get stuck! if you want to contribute more or follow up if issues are open, join us on Telegram: https://t.me/+DOylgFv1jyJlNzM0

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey, thanks for the contribution!

To ensure your Pull Request passes the CI pipeline and maintains repository stability, please follow these technical requirements:

1. Backend Testing (Vitest)

  • Version: We have standardized on Vitest ^2.1.8. Do not upgrade to v3 or v4 without explicit approval, as they introduce native dependency issues in the CI environment.
  • Isolation: Each test file now runs in its own forked process (pool: 'forks'). This prevents vi.mock() and other module-level states from leaking between files.
  • Prisma Mocking: When testing controllers, always mock the Prisma client in backend/src/lib/prisma.ts. Do not rely on a real database for unit tests.
  • CLI Flags: Avoid using the --verbose flag in Vitest commands, as it is incompatible with the v2 CLI.

2. API Versioning & Routing

  • Endpoints: Hit versioned endpoints (e.g., /v1/streams) instead of the deprecated root endpoints (e.g., /streams).
  • Response Codes: Endpoints return 410 Gone for specifically deprecated routes. Ensure your tests handle these correctly.
  • Input Validation: Controllers expect strict field names (e.g., streamId, ratePerSecond, depositedAmount). Use the types defined in src/services/ and src/controllers/.

3. Infrastructure & Dependencies

  • Husky: The pipeline skips Husky. Your package.json scripts should use husky || true to prevent non-interactive shell failures.
  • Prisma Generation: Always ensure your workflow runs prisma generate before tests. The CI now handles this in a consolidated "Setup Database" step.
  • Native Bindings: If you add dependencies with native bindings (like Rollup or ESBuild), ensure they are compatible with the ubuntu-latest (linux-x64) runner.

4. Frontend Best Practices

  • Directives: Always include "use client" at the top of components that utilize React hooks or browser APIs.
  • Dependencies: Ensure all utilized libraries (like react-hot-toast) are explicitly added to frontend/package.json and not just inherited from the root.

Please make sure your CI passes before we finalize the merge. Let us know if you have any questions!

If you want to follow up or have questions, join us on Telegram: https://t.me/+DOylgFv1jyJlNzM0

- Added Albedo and xBull to SUPPORTED_WALLETS array
- Implemented mock connection functions for Albedo and xBull wallets
- Updated WalletModal to display all three wallets with wallet-specific notes
- Updated footer to show all supported wallets
- Fixed lint warnings in wallet-entry and WalletButton components
@Abidoyesimze Abidoyesimze force-pushed the feature/wallet-selection-modal branch from f0c0103 to 1c17cc1 Compare March 6, 2026 03:27
@Abidoyesimze
Copy link
Copy Markdown
Contributor Author

You can check now @ogazboiz

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great, merging this in! thanks for the contribution.

if you want to contribute more or follow up if issues are open, join us on Telegram: https://t.me/+DOylgFv1jyJlNzM0

@ogazboiz ogazboiz merged commit f1ae166 into LabsCrypt:main Mar 7, 2026
7 checks passed
@drips-wave drips-wave bot mentioned this pull request Mar 9, 2026
4 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.

Frontend: Connect Wallet Screen/Modal

2 participants