eBay / eBay/evo-web

evo-react: migrate ebay-menu-button

Open
#830 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

package: evo-web/react
Dominant language
TypeScript
Stars
51
Forks
52
Avg merge
3d 12h
Merged PRs (30d)
44

Description

Parent: #794

Description

Migrate @ebay/ui-core-react/ebay-menu-button to @evo-web/react/menu-button.

Use the repository's Evo React migration guidance.

Goals

  • Preserve semantic HTML, Skin/BEM styling, accessibility behavior, keyboard support, RTL behavior, and pass-through attributes.
  • Align the public API with the corresponding Evo Marko contract without carrying forward obsolete React workarounds.
  • Follow React 19 and @evo-web/react package conventions.

Acceptance criteria

  • Uses named exports, native React 19 ref props, and no forwardRef, FC, or default exports.
  • Imports the appropriate Skin .mjs module directly.
  • Avoids React.Children inspection; composition uses explicit components/context where needed.
  • Public custom props and object fields have JSDoc and follow Evo accessibility naming conventions.
  • Includes browser interaction tests and SSR snapshot coverage.
  • Includes Storybook documentation and a minimal component README.
  • Updates consumer migration guidance in evo-app-migrate-react.
  • Includes an @evo-web/react changeset.
  • Meets WCAG 2.2 AA and supports keyboard use and RTL.
  • npm run build passes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the migration guidance in .agents/skills/evo-migrate-react/SKILL.md and compare the existing ebay-menu-button with the corresponding Evo Marko contract. Verify the component against the listed browser, SSR, Storybook, README, migration-guidance, changeset, accessibility, RTL, and build requirements. Done means npm run build passes and all acceptance criteria are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, storybook, typescript
Domain
accessibility, documentation, frontend, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.