Skip to content

feat(typescript): migrate JSX components to TSX with typed interfaces#517

Merged
Nanle-code merged 1 commit into
Nanle-code:masterfrom
brite-side0:feat/issue-403-typescript-migration
Jun 30, 2026
Merged

feat(typescript): migrate JSX components to TSX with typed interfaces#517
Nanle-code merged 1 commit into
Nanle-code:masterfrom
brite-side0:feat/issue-403-typescript-migration

Conversation

@brite-side0

Copy link
Copy Markdown
Contributor

Summary

Closes #403

Converts 8 JSX components to TSX with full TypeScript interfaces, and enables strict mode in tsconfig.json.

Converted components

File Key types added
accessibility/AccessibilityProvider AccessibilityProviderProps
accessibility/FocusManager FocusManagerProps, typed useRef<HTMLDivElement>, typed KeyboardEvent handler
accessibility/ScreenReaderAnnouncer typed subscription callback
addressLabels/AddressLabelBadge AddressLabelBadgeProps, Category interface
dashboard/CrossNetworkPanel ProbeResult, ComparisonResult, CrossNetworkPanelProps
dashboard/RelationshipPanel Relationship, RankedNode, Cluster, ReportSummary, RelationshipReport, LabelMap for all sub-components
dashboard/TimeAnalysis Operation, DailyVolume, TimeAnalysisResult, typed Recharts formatters
layout/NetworkIndicator NetworkIndicatorProps

Config changes

  • tsconfig.json: strict: true, noImplicitAny: true, strictNullChecks: true (previously all false)

Test plan

  • Application builds without TypeScript errors on the converted files
  • NetworkIndicator renders correctly in sidebar/header
  • CrossNetworkPanel opens and probes networks as before
  • RelationshipPanel renders relationship data with all tabs
  • TimeAnalysis charts render correctly
  • AddressLabelBadge shows labels and add-label flow

🤖 Generated with Claude Code

… (issue Nanle-code#403)

Convert 8 JSX components to TSX with full TypeScript interfaces and strict mode:

- src/components/accessibility/AccessibilityProvider.jsx → .tsx: typed children prop
- src/components/accessibility/FocusManager.jsx → .tsx: FocusManagerProps interface, typed refs and event handlers
- src/components/accessibility/ScreenReaderAnnouncer.jsx → .tsx: typed subscription callback
- src/components/addressLabels/AddressLabelBadge.jsx → .tsx: AddressLabelBadgeProps interface, typed event handlers
- src/components/dashboard/CrossNetworkPanel.jsx → .tsx: ProbeResult/ComparisonResult/CrossNetworkPanelProps interfaces, typed Zustand selectors
- src/components/dashboard/RelationshipPanel.jsx → .tsx: full domain interfaces (Relationship, RankedNode, Cluster, RelationshipReport, LabelMap) for all sub-components
- src/components/dashboard/TimeAnalysis.jsx → .tsx: Operation/DailyVolume/TimeAnalysisResult interfaces, typed Recharts formatters
- src/components/layout/NetworkIndicator.jsx → .tsx: NetworkIndicatorProps interface

tsconfig.json: enable strict, noImplicitAny, strictNullChecks (previously all false)

Closes Nanle-code#403

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

@brite-side0 is attempting to deploy a commit to the nanle-code's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 30, 2026

Copy link
Copy Markdown

@brite-side0 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

@Nanle-code Nanle-code merged commit 3c7f1bb into Nanle-code:master Jun 30, 2026
1 check failed
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.

D-001: Complete TypeScript migration for all components

2 participants