Skip to content

feat!: modernize repo — TypeScript, hooks, GitHub Actions#46

Merged
cdtinney merged 5 commits into
developfrom
modernize-repo
Apr 20, 2026
Merged

feat!: modernize repo — TypeScript, hooks, GitHub Actions#46
cdtinney merged 5 commits into
developfrom
modernize-repo

Conversation

@cdtinney

Copy link
Copy Markdown
Owner

Summary

  • Rewrites component from React 16 class to functional component with hooks + TypeScript
  • Adds pauseOnHover prop (closes Pause on hover #14) and loop prop (closes Add loop prop #22)
  • Fixes scrollWhen="overflow" duplicate span rendering (closes A problem with setting scrollWhen #44)
  • Migrates CI from Travis CI to GitHub Actions (ci.yml + release.yml)
  • Upgrades all deps: Rollup 1→4, Jest 24→29, ESLint 5→8, React 16→18, Enzyme→React Testing Library
  • Widens React peer dependency to >=16.8.0
  • Updates README with new props table, TypeScript examples, and GitHub Actions badges

BREAKING CHANGE: Component is now a functional component. PropTypes removed in favor of TypeScript types.

Test plan

  • npm run build passes (UMD + ESM bundles)
  • npm run lint passes
  • npm test passes (10/10 tests)
  • Verify GitHub Actions CI runs on this PR
  • Manual smoke test of marquee in a browser

🤖 Generated with Claude Code

cdtinney and others added 5 commits April 20, 2026 15:08
- Rewrite component from React 16 class to functional component with hooks
- Convert to TypeScript with exported type definitions
- Add pauseOnHover and loop props (closes #14, closes #22)
- Fix scrollWhen="overflow" duplicate span rendering (closes #44)
- Migrate CI from Travis CI to GitHub Actions (ci.yml + release.yml)
- Upgrade all dependencies: Rollup 4, Jest 29, ESLint 8, React 18
- Replace Enzyme with React Testing Library
- Widen React peer dependency to >=16.8.0
- Update README with new props, TypeScript examples, and CI badges

BREAKING CHANGE: Component is now a functional component. PropTypes removed
in favor of TypeScript types. Peer dependency widened to react >=16.8.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Callbacks now read current prop values from a propsRef instead of
closing over them. This prevents the useCallback dependency chain
from recreating every function on prop changes and avoids restarting
the animation loop unnecessarily. The useEffect now only depends on
children and delay.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous lockfile was generated via a corporate proxy registry,
causing npm ci to hang in GitHub Actions. Regenerated with the public
npm registry. Also bumped CI matrix from Node 18/20 to 20/22 since
semantic-release deps require Node >= 20.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
No need to test across Node versions for a frontend React library.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cdtinney cdtinney merged commit 9f540a0 into develop Apr 20, 2026
1 check 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

Development

Successfully merging this pull request may close these issues.

A problem with setting scrollWhen Add loop prop Pause on hover

1 participant