Skip to content

chore(ui): a11y skip-link, useMemo, hook fixes, dead-code cleanup#239

Closed
jinglescode wants to merge 1 commit into
feat/server-hardening-and-audit-logfrom
chore/ui-cleanup-and-hooks
Closed

chore(ui): a11y skip-link, useMemo, hook fixes, dead-code cleanup#239
jinglescode wants to merge 1 commit into
feat/server-hardening-and-audit-logfrom
chore/ui-cleanup-and-hooks

Conversation

@jinglescode
Copy link
Copy Markdown
Member

Summary

Small UI/hook cleanup that fell out of the audit. Each change is independently small; bundling them into one PR to avoid review overhead.

A11y (Wave 7)

  • overall-layout: add skip-link + main-content anchor; aria-label on the main form

Performance (Wave 6)

  • transaction-card: useMemo(() => JSON.parse(transaction.txJson), [transaction.txJson]) — was re-parsing on every render
  • Removed a dead import { get } from "http" that was sneaking into the client bundle

Hook stability

  • useAppWallet / useMultisigWallet: stable return references; missing-wallet path no longer spins indefinitely (was rendering loading state forever when wallet not in cache)

Dead-code cleanup

  • Deleted src/components/multisig/proxy/ProxyControlExample.tsx — example-only code, not exported, never rendered. Barrel import updated.
  • Trimmed unused state vars / imports in: ImgDragAndDrop, MeshProviderClient, BotManagementCard, background.tsx, card-show-signers, signing/index, signable-card

Base branch

Targets #237 — these UI changes were made on top of the test-infra changes in that PR. Once #237 merges to main, this auto-retargets.

Test plan

Stats

13 files changed, +59 / -201 (net deletion thanks to ProxyControlExample removal)

🤖 Generated with Claude Code

Small UI/hook cleanup that fell out of the audit:

- overall-layout: add skip-link + main-content anchor; aria-label on the
  main form. Trims unused legacy nav code.
- transaction-card: useMemo the JSON.parse(transaction.txJson) so the
  parse only runs when txJson changes, not on every render. Removes a
  dead `import { get } from \"http\"` that was sneaking into the client
  bundle.
- signable-card: defensive parse for legacy payload shapes.
- card-show-signers, signing/index: small render fixes.
- ImgDragAndDrop, MeshProviderClient, BotManagementCard, background.tsx:
  drop dead state vars / unused imports surfaced by the audit.
- useAppWallet, useMultisigWallet: stable returns; missing-wallet path
  no longer spins indefinitely.
- Delete `src/components/multisig/proxy/ProxyControlExample.tsx`. It was
  example-only code, not exported from the proxy index, never rendered
  anywhere. The barrel import is updated.

Test plan
- 165/165 staged-suite tests pass on top of #237
- Typecheck clean

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
multisig Ready Ready Preview, Comment May 10, 2026 8:36am

Request Review

@jinglescode jinglescode deleted the branch feat/server-hardening-and-audit-log May 10, 2026 08:56
@jinglescode jinglescode deleted the chore/ui-cleanup-and-hooks branch May 10, 2026 09:00
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.

1 participant