Composing multiple HOCs that return ComponentTypes using ElementConfig breaks prop types
- Dominant language
- Rust
- Stars
- 22.3k
- Forks
- 1.9k
- PR merge metrics
- No merged PRs in 30d
Description
To reproduce: https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQduEAdqvE+BKlgFxwAkAYRKRucALxwAFMwCuAG3l9kzAJ4BKeoxZs4wZgCss+AGIQIEuAB4ACsTCo+AbwC+AGjgBpPtjwwAdMKczFjMMAAqqmBYtvaoAHzxUnRwcEGQIWF8nm506j5UAeksoRFRMfwAIsAEBFa++P4AovJYIKXCzATAAOZWnvEeTgTmfGxQ+j1wAD5wAG4QwAAmLokS8XBOKXCUMLJQzNJyispqmnQuWkys8PpG+ABCyFCWsRAOzu5eBX6BIiVhSLRN4ORLJVLFTIwbK5fKYQp-YKlIEVaq1eoIlptDosbp9AZDABGzzGMAmzCmswWy1WG3EGy2qV2+0OMgUShQZ3olwYuHkaHQTQAHshwK1IaU4FghTBQkt0A0iv8oVZGXARhBSeSerlUsSoFrJrq4MSAF58OQgQlYKDG7rmk3mVoqXKrTbbNjIGDAXBwJZYAjIBQwOzvdCSNV65AOgAMxp5LgYAHok2kABbIfRYJZpZXI8pJrHtMKdPEmyjIADW6DAcW0NzgAElDMZZUsJWFLBxRFhwXoW6ZzMa7q2nra8lJhaKwOK82FzqlF0vl3QUwJhdF8E0oMQXoTZPBmBAAv5-HBUGmIAoc93+foUISr4RgKa4CBgKhUEaTcgc2az7WYYoJQ55YG0kzyKocAAAYqKo0FwEeADudBWM29xth28BmuIABEACMABMADMuFwEm8RaGuDwHnABiyLoJRwEh0DVqe-j1ro6GttmWFmBYkgjoOECTiKYpYFh5xoQOmFzjA-E-lAeFEaR6ovuRlHJqmzZsDgOYQAQOxYHsByTLmSKAuUHg1MxWDqtAuB2YI-KfhivxYVY7GJNZ8AsVA1acbcMn8YRryhh8mxfN48LuXJKIggkSTbFhMJ5HwzkClY2yKoiGSlFYVQ1HUOVFjiXS9P0gybBqhoUjM8yLCsVVwYMdB0gy2zMgcRzsqcGjcvQy5DcNgX9hhY6hZICWfB40U5Vh8XhYlfYpV4sLpS5qBZak81yQVaLFZirTFjApYVQSmz6rVlINTSzVqK17Xukyxksj1Jycv1FyDcNv1DaN3H4LxcmTXA3ZcL22xCfJ5iEcOMkTbConTrOFkwOcq6pvwG6ttuu6oYDslo6FOEESRZH2hpVGpgA6qxqAAIQEzJwPE2pr4UTQQA
I've attempted to comment the above. Some more detail:
* `injectFoo` and `injectBar` are HOCs that return `React.ComponentType` calculated using `React.ElementConfig`. Alone, they work as expected. However, when composed together, the resulting component loses all prop types.
* `injectFoo2` and `injectBar2` are alternate typed versions of the same HOC. Instead of returning `React.ComponentType` they return just `Class>`. Composing these together works as desired.
Contributor guide
Assessment
This issue has not been assessed yet.