adobe / react-spectrum

A collection of libraries and tools that help you build adaptive, accessible, and robust user experiences.
https://react-spectrum.adobe.com
Apache License 2.0
12.12k stars 1.06k forks source link

Fix Compat for React 19 types #6632

Open snowystinger opened 4 days ago

snowystinger commented 4 days ago

Closes

Found in Daniel's work, this adds needed compatibility between React 18 and 19 types. See https://github.com/microsoft/TypeScript/issues/59049

โœ… Pull Request Checklist:

๐Ÿ“ Test Instructions:

๐Ÿงข Your Project:

rspbot commented 4 days ago

Build successful! ๐ŸŽ‰

LFDanLu commented 2 days ago

Just a FYI, I pulled this into my load more branch locally for S2 development and verified that it fixed most of the lint issues except for this last numberfield one which I didn't look into yet:

src/NumberField.tsx(371,44): error TS2769: No overload matches this call.
[0]   The last overload gave the following error.
[0]     Argument of type '{ elementType: "div"; form?: string | undefined; formAction?: string | undefined; formEncType?: string | undefined; formMethod?: string | undefined; formNoValidate?: boolean | undefined; ... 32 more ...; style?: CSSProperties | ... 1 more ... | undefined; }' is not assignable to parameter of type 'AriaButtonOptions<ElementType>'.
[0]       Types of property 'onPress' are incompatible.
[0]         Type '((e: import("/Users/danilu/dev/experimental-s2/node_modules/react-aria-components/node_modules/@react-types/shared/src/events").PressEvent) => void) | undefined' is not assignable to type '((e: import("/Users/danilu/dev/experimental-s2/node_modules/@react-types/shared/src/events").PressEvent) => void) | undefined'.
[0]           Type '(e: import("/Users/danilu/dev/experimental-s2/node_modules/react-aria-components/node_modules/@react-types/shared/src/events").PressEvent) => void' is not assignable to type '(e: import("/Users/danilu/dev/experimental-s2/node_modules/@react-types/shared/src/events").PressEvent) 
rspbot commented 1 day ago

Build successful! ๐ŸŽ‰

rspbot commented 1 day ago
## API Changes unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any', access: 'private' } unknown top level export { type: 'any', access: 'private' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'identifier', name: 'Column' } unknown top level export { type: 'identifier', name: 'Column' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown type { type: 'link' } unknown type { type: 'link' } unknown type { type: 'link' } unknown type { type: 'link' } unknown type { type: 'link' } unknown type { type: 'link' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' } unknown top level export { type: 'any' }