Skip to content

Fix Compat for React 19 types - #6632

Merged
LFDanLu merged 6 commits into
mainfrom
fix-our-react-19-types-for-compat
Jul 12, 2024
Merged

LFDanLu merged 6 commits into
mainfrom
fix-our-react-19-types-for-compat

Conversation

@snowystinger

Copy link
Copy Markdown
Member

Closes

Found in Daniel's work, this adds needed compatibility between React 18 and 19 types. See microsoft/TypeScript#59049

✅ Pull Request Checklist:

  • Included link to corresponding React Spectrum GitHub Issue.
  • Added/updated unit tests and storybook for this change (for new code or code which already has tests).
  • Filled out test instructions.
  • Updated documentation (if it already exists for this component).
  • Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Project:

@rspbot

rspbot commented Jun 27, 2024

Copy link
Copy Markdown

Base automatically changed from fix-install to main June 27, 2024 23:23
@LFDanLu

LFDanLu commented Jun 28, 2024

Copy link
Copy Markdown
Member

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) 

# Conflicts:
#	packages/@react-aria/virtualizer/src/Virtualizer.tsx
#	packages/react-aria-components/src/Collection.tsx
#	packages/react-aria-components/src/useDragAndDrop.tsx
@rspbot

rspbot commented Jun 30, 2024

Copy link
Copy Markdown

ktabors
ktabors previously approved these changes Jul 11, 2024
import {DraggableCollectionState} from '@react-stately/dnd';
import {globalDndState, setDraggingCollectionRef} from './utils';
import {RefObject} from 'react';
import {} from 'react';

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we still need the react import here? I noticed in we dropped it in packages/@react-aria/grid/src/useGridRow.ts. There are additional places where we dropped it or did it this way too. It doesn't seem to be based on strict mode because there are some packages that have both versions.

# Conflicts:
#	packages/@react-aria/datepicker/src/useDateSegment.ts
#	packages/@react-aria/virtualizer/src/Virtualizer.tsx
#	packages/@react-types/shared/src/refs.d.ts
#	packages/react-aria-components/src/Collection.tsx
#	packages/react-aria-components/src/GridList.tsx
#	packages/react-aria-components/src/ListBox.tsx
#	packages/react-aria-components/src/Modal.tsx
#	packages/react-aria-components/src/Popover.tsx
#	packages/react-aria-components/src/Table.tsx
#	packages/react-aria-components/src/Tabs.tsx
#	packages/react-aria-components/src/Tooltip.tsx
#	packages/react-aria-components/src/Tree.tsx
#	packages/react-aria-components/src/utils.tsx
@rspbot

rspbot commented Jul 12, 2024

Copy link
Copy Markdown

ktabors
ktabors previously approved these changes Jul 12, 2024
@rspbot

rspbot commented Jul 12, 2024

Copy link
Copy Markdown

@rspbot

rspbot commented Jul 12, 2024

Copy link
Copy Markdown

@rspbot

rspbot commented Jul 12, 2024

Copy link
Copy Markdown
## 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' }

@devongovett devongovett left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's hope we can revert this eventually.

@LFDanLu
LFDanLu merged commit 63a2ff6 into main Jul 12, 2024
@LFDanLu
LFDanLu deleted the fix-our-react-19-types-for-compat branch July 12, 2024 21:59
@dannify dannify removed the release label Aug 13, 2024
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.

6 participants