fix: Update incorrect SwitchChangeEvent type (#34931)

Summary:
I noticed that typescript type for `onChange`  event of `<Switch/>` was incorrect

```tsx
<Switch
  onChange={(event) => {
    // TS
    event.value; // boolean
    event.nativeEvent.value; //TS2339: Property 'value' does not exist on type 'Event'.
    // JS
    console.log(event.nativeEvent); // {value:false,target:87}
    console.log(event.value); // undefined
  }}
/>
```

## Changelog

[General] [Changed] - Typescript: update incorrect `SwitchChangeEvent` type

Pull Request resolved: https://github.com/facebook/react-native/pull/34931

Test Plan: ...

Reviewed By: lunaleaps

Differential Revision: D40240552

Pulled By: skinsshark

fbshipit-source-id: 4d39d547778de4ac4dc6c94471f05bfbe157d0e5
This commit is contained in:
David
2022-10-12 13:05:35 -07:00
committed by Facebook GitHub Bot
parent 0c5ef573fe
commit 5dd2f2e4b7
5 changed files with 19 additions and 4 deletions
@@ -10,7 +10,11 @@
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
import type {ColorValue} from '../../StyleSheet/StyleSheet';
import type {BubblingEventHandler, WithDefault} from '../../Types/CodegenTypes';
import type {
BubblingEventHandler,
Int32,
WithDefault,
} from '../../Types/CodegenTypes';
import type {ViewProps} from '../View/ViewPropTypes';
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
@@ -19,6 +23,7 @@ import * as React from 'react';
type SwitchChangeEvent = $ReadOnly<{|
value: boolean,
target: Int32,
|}>;
type NativeProps = $ReadOnly<{|
+5 -1
View File
@@ -13,6 +13,7 @@ import {NativeMethods} from '../../Renderer/shims/ReactNativeTypes';
import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
import {ViewProps} from '../View/ViewPropTypes';
import {NativeSyntheticEvent, TargetedEvent} from '../../Types/CoreEventTypes';
export interface SwitchPropsIOS extends ViewProps {
/**
@@ -37,10 +38,13 @@ export interface SwitchPropsIOS extends ViewProps {
tintColor?: ColorValue | undefined;
}
export interface SwitchChangeEvent extends React.SyntheticEvent {
export interface SwitchChangeEventData extends TargetedEvent {
value: boolean;
}
export interface SwitchChangeEvent
extends NativeSyntheticEvent<SwitchChangeEventData> {}
export interface SwitchProps extends SwitchPropsIOS {
/**
* Color of the foreground switch grip.
+1
View File
@@ -27,6 +27,7 @@ import * as React from 'react';
type SwitchChangeEvent = SyntheticEvent<
$ReadOnly<{|
value: boolean,
target: number,
|}>,
>;
@@ -10,7 +10,11 @@
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
import type {ColorValue} from '../../StyleSheet/StyleSheet';
import type {BubblingEventHandler, WithDefault} from '../../Types/CodegenTypes';
import type {
BubblingEventHandler,
Int32,
WithDefault,
} from '../../Types/CodegenTypes';
import type {ViewProps} from '../View/ViewPropTypes';
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
@@ -19,6 +23,7 @@ import * as React from 'react';
type SwitchChangeEvent = $ReadOnly<{|
value: boolean,
target: Int32,
|}>;
type NativeProps = $ReadOnly<{|
+1 -1
View File
@@ -1429,7 +1429,7 @@ const SwitchOnChangePromiseTest = () => (
<Switch
onChange={event => {
const e: SwitchChangeEvent = event;
return new Promise(() => e.value);
return new Promise(() => e.nativeEvent.value);
}}
/>
);