Divyansh Jamwal

Pull Requests

Count: 12
ReferenceContribution
#360
Memory leak fix in bc-buttonPerformance
Problem

Store subscriptions created within the bc-button component were never cleaned up on unmount, causing memory leaks during repeated mounts and state updates. Over time, this could degrade performance in long-running applications using Bitcoin Connect.

Proposed Fix

Implemented proper unsubscribe logic using component lifecycle callbacks, ensuring subscriptions are consistently cleaned up when the component is disposed.

#49
npm install workaround for Storybook peer conflictsValidation
Problem

Fresh clones of the repository failed during npm install due to unresolved Storybook peer dependency conflicts. The error originated from transitive dependencies, not application code, making the project appear broken to new contributors.

Proposed Fix

Documented a safe and reproducible workaround (npm install --legacy-peer-deps) in the README to unblock local development while upstream dependencies stabilize.

#50
Keyboard accessibility for nostr-profile-badgeAccessibility
Problem

The nostr-profile-badge component relied entirely on mouse interaction, making it inaccessible to keyboard-only users and assistive technologies. This excluded users who navigate via keyboard and violated basic accessibility expectations for interactive identity components.

Proposed Fix

Implemented keyboard activation using standard key events, added proper focus handling, and resolved nested interactive element conflicts to ensure predictable behavior across input methods.

#3437
Windows npm install workaroundCompatibility
Problem

On Windows systems, npm install failed due to unresolved peer dependency conflicts in the React Native toolchain. This prevented Windows developers from building and contributing to Zeus Wallet, a production Lightning Network application.

Proposed Fix

Documented a stable npm install --legacy-peer-deps workaround in the README, restoring a working setup path without modifying the existing dependency graph.

#3441
Optional cross-env start scriptCompatibility
Problem

NODE_ENV was set differently across Windows shells (PowerShell, CMD, Git Bash), leading to inconsistent runtime behavior and confusing environment-specific bugs during local development and testing.

Proposed Fix

Added an optional start:prod script using cross-env to provide consistent environment variable handling across platforms, without altering or breaking existing scripts.

#3448
Frontend validation for NWC inputsValidation ## PROJECT: Alby / Bitcoin Connect
Problem

Invalid Nostr Wallet Connect (NWC) inputs were only detected after initiating deeper flows, resulting in generic error messages that obscured the real cause of failure. For wallet software, delayed and unclear validation reduces user trust and increases support overhead.

Proposed Fix

Implemented early frontend validation using existing localized strings, allowing input issues to be detected and communicated before network or wallet operations begin.

#1992
Accessibility semantics for ResponsiveButtonAccessibility
Problem

Icon-only buttons lacked accessible labels and proper disabled semantics, making their purpose unclear to screen-reader users and causing disabled states to be incorrectly announced.

Proposed Fix

Added descriptive aria-labels, applied correct aria-disabled semantics, and marked decorative icons as hidden from the accessibility tree to ensure accurate announcements by assistive technologies.

#52
Disabled state support for nostr-follow-buttonAccessibility
Problem

The follow button remained interactive during loading and unavailable states, allowing users to trigger actions that could not be completed. This caused inconsistent behavior for keyboard users and unclear state announcements for screen readers.

Proposed Fix

Implemented proper disabled-state handling by applying the disabled attribute, blocking focus when unavailable, and improving ARIA semantics to accurately reflect interaction state.

#606
Investment amount validation feedback (Angor)Validation
Problem

Invalid investment amounts were not clearly communicated to users, resulting in silent failures or ambiguous feedback during a financial interaction. In investment-related flows, unclear validation increases user error and reduces confidence in the platform.

Proposed Fix

Added UI-level validation feedback by leveraging the existing validity state, surfacing precise and immediate error messages without modifying backend logic.

#1992
Accessibility semantics exploration (Closed)Accessibility
Problem

Accessibility semantics were initially implemented at an inappropriate abstraction level, increasing complexity and making the solution harder to maintain across the component system.

Proposed Fix

Closed the PR after maintainer feedback, documented the learnings, and adjusted the approach in subsequent accessibility-focused contributions to apply semantics at the correct layer.

#997
Windows Compatibility for Dev ScriptsCompatibility
Problem

Local development for JoinMarket Web UI silently assumed a Unix shell environment. On Windows, environment variables failed to resolve, blocking contributors at the very first setup step. This disproportionately excluded Windows developers from contributing to a Bitcoin privacy project.

Proposed Fix

Replaced inline Unix-style environment variables with cross-env, ensuring scripts behave consistently across Windows, macOS, and Linux — without changing existing workflows.

#361
Accessibility & interaction refactor for bc-pay-buttonAccessibility
Problem

The bc-pay-button relied on non-semantic div elements for user interaction, preventing reliable keyboard navigation and limiting screen-reader support in a payment-related component. Inaccessible payment interactions can block users entirely and reduce trust in financial tooling.

Proposed Fix

Refactored the component to use a semantic button element, added appropriate ARIA attributes, and introduced aria-live announcements to communicate state changes to assistive technologies.