Skip to content

feat: resolve issues #725, #727, #728, #731 (skeleton lib, wallet heartbeat, query serializer, high-latency mode)#798

Merged
Junirezz merged 3 commits into
Junirezz:mainfrom
trinnode:issues-resolved-trinnode
Jun 26, 2026
Merged

feat: resolve issues #725, #727, #728, #731 (skeleton lib, wallet heartbeat, query serializer, high-latency mode)#798
Junirezz merged 3 commits into
Junirezz:mainfrom
trinnode:issues-resolved-trinnode

Conversation

@trinnode

Copy link
Copy Markdown
Contributor

Summary

This PR resolves four frontend issues focused on improving UX under varying network conditions, wallet session health, loading states, and shareable dashboard views.

Closes #725 — Loading Skeleton Library
Closes #727 — Wallet Session Heartbeat Indicator
Closes #728 — Deterministic Query State Serializer
Closes #731 — High-Latency Mode UI Treatment

#725 - Loading Skeleton Library

Added vault-critical skeleton components to Skeleton.tsx: SharePriceSkeleton, VaultStatSkeleton, TransactionRowSkeleton, PortfolioCardSkeleton, AnalyticsWidgetSkeleton. All use existing primitives for consistent dimensions.

#727 - Wallet Session Heartbeat Indicator

Created useWalletHeartbeat hook pinging Freighter via isConnected(). Created WalletSessionIndicator with health dot, latency, and reconnect suggestions. Integrated into WalletConnect.tsx. i18n in EN/ES.

#728 - Deterministic Query State Serializer

Created useSharableViewState hook with deterministic URL param serialization (sorted keys). Supports page, sortBy, sortDirection, search, filters. getShareableUrl() for stable deep links.

#731 - High-Latency Mode UI Treatment

Created useNetworkQuality hook for latency measurement. Created useAdaptivePolling auto-adjusting intervals. Created HighLatencyBanner for visual treatment. i18n in EN/ES.

…zz#731

- Junirezz#725: Add vault-critical skeleton components (SharePriceSkeleton, VaultStatSkeleton,
  TransactionRowSkeleton, PortfolioCardSkeleton, AnalyticsWidgetSkeleton) for
  deterministic loading placeholders
- Junirezz#727: Add wallet session heartbeat via useWalletHeartbeat hook and
  WalletSessionIndicator component with contextual reconnect suggestions
- Junirezz#728: Add useSharableViewState hook for deterministic query state serialization
  into stable URL params for fully shareable dashboard deep links
- Junirezz#731: Add useNetworkQuality hook for latency measurement, useAdaptivePolling
  for adaptive cadence based on network quality, and HighLatencyBanner component
  for visual treatment when network degrades
@drips-wave

drips-wave Bot commented Jun 24, 2026

Copy link
Copy Markdown

@trinnode Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

openhands-agent and others added 2 commits June 25, 2026 21:55
…oard.tsx

- Removed duplicate confetti import
- Removed duplicate resetWizard and goToReview function declarations
- Removed unused clearVaultFormDraft import
@Junirezz Junirezz merged commit f0b60d3 into Junirezz:main Jun 26, 2026
4 of 8 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