Closed
Description
Description rewritten by @tkajtoch.
Currently, EUI doesn't support React 18, and we noticed some of the components are behaving unexpectedly or are entirely broken when running on the latest React runtimes with strict mode enabled. We know this may block our users from upgrading to the latest and greatest, and we decided to prioritize the EUI upgrade process to address this issue.
Goals
- Allow users to integrate EUI components with React 18 applications or migrate their existing applications using EUI to React 18
- Keep supporting React >=17 versions in new releases for the time being
- Upgrade EUI docs application to run on the latest React 18 version
- Maintain the same component APIs and props (internal components structure may change)
- Update our testing frameworks to run tests on React 18 and fix any broken tests
- Provide upgrade instructions if necessary
Acceptance Criteria
- All EUI components work according to specification, and their behavior doesn't change between React 18 and older React versions
- EUI docs app runs on React 18
- All unit and e2e tests are passing
- There are no breaking changes to the components' usage or props (stricter prop definitions are allowed - e.g. around the children prop)
- All dependencies using React are updated to versions supporting React 18
Definition of done
- All EUI components are tested using already built automated test suites as well as manually, and any necessary fixes are implemented
- All linked issues to this meta issue are done and closed
- Changes are merged from a feature branch to main
- EUI supporting React 18 is released
### Child issues
- [ ] #6179
- [x] #6180
- [x] #6181
- [ ] #6187
- [ ] https://github.com/elastic/eui/issues/6780
- [ ] https://github.com/elastic/eui/issues/6784
- [ ] https://github.com/elastic/eui/issues/6783
- [ ] https://github.com/elastic/eui/issues/6782
- [ ] https://github.com/elastic/eui/issues/6781
- [ ] https://github.com/elastic/eui/issues/6891