Skip to content

Conversation

@AdekunleBamz
Copy link

Summary

This PR improves the code quality and accessibility of the Ecosystem page components by adding comprehensive TypeScript type definitions, JSDoc documentation, and accessibility enhancements.

Changes

🆕 New Files

  • apps/web/src/types/ecosystem.ts - Comprehensive TypeScript type definitions for:

    • EcosystemCategory - Valid category types (ai, consumer, defi, infra, onramp, wallet)
    • EcosystemSubcategory - Union of all valid subcategories
    • EcosystemApp - Interface for ecosystem app data structure
    • DecoratedEcosystemApp - Extended interface with search-optimized fields
    • EcosystemCategoryConfig - Type for category configuration
    • EcosystemFilterProps - Props interface for filter components
  • apps/web/src/types/index.ts - Barrel export file for convenient type imports

📝 Updated Files

  • Card.tsx - Added JSDoc documentation, uses shared types, improved accessibility with:

    • Better aria-label for screen readers
    • focus-visible ring for keyboard navigation
  • Content.tsx - Added component documentation, uses shared types with backward compatibility export

  • List.tsx - Added JSDoc documentation, extracted ListProps interface, uses shared types

  • SearchBar.tsx - Added component documentation, extracted SearchBarProps interface, improved:

    • Capitalized ARIA label ("Clear search input")
    • Added focus-visible ring to clear button for keyboard accessibility

Benefits

  • Type Safety: Comprehensive TypeScript types prevent runtime errors
  • Documentation: JSDoc comments improve developer experience and IDE support
  • Accessibility: Better keyboard navigation and screen reader support
  • Maintainability: Centralized type definitions reduce duplication
  • Backward Compatibility: Existing imports continue to work

Testing

  • Visual regression testing
  • Keyboard navigation testing
  • Screen reader testing

@vercel
Copy link

vercel bot commented Jan 8, 2026

Someone is attempting to deploy a commit to the Coinbase Team on Vercel.

A member of the Team first needs to authorize it.

@cb-heimdall
Copy link
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

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.

2 participants