Skip to content

Migrate native spec imports to the public React Native API #1070

Open

Description

@pandurirobotii

Summary

@react-native-community/datetimepicker@9.1.0 uses private React Native imports in its native component specification. The current upstream specification still contains these imports.

React Native introduced its Strict TypeScript API in 0.80 and enabled it by default in 0.87. React Native documents public package-root exports for Codegen types and helpers as the supported migration path.

Affected imports

In src/specs/DateTimePickerNativeComponent.js:

import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
import type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheet';
import type {
  BubblingEventHandler,
  Double,
  Int32,
  WithDefault,
} from 'react-native/Libraries/Types/CodegenTypes';
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';

Suggested change

Use the public package-root exports:

import type {ViewProps, ColorValue, HostComponent, CodegenTypes} from 'react-native';
import {codegenNativeComponent} from 'react-native';

Update the specification's numeric, event-handler, and default-value annotations to CodegenTypes.Double, CodegenTypes.Int32, CodegenTypes.BubblingEventHandler, and CodegenTypes.WithDefault, preserving their existing signatures and defaults.

Please check the remaining native module specifications for private React Native imports as part of this migration, and account for the library's supported React Native versions when deciding whether a minimum-version change is needed.

Scope and compatibility

  • Library version: 9.1.0
  • Target React Native version: 0.87.1
  • Scope: native specification import migration, not a platform-specific picker runtime failure.
  • This particular component specification is Flow source. This report does not claim that a normal TypeScript consumer necessarily typechecks this .js file or fails merely by importing the library; it requests migration away from the private paths to the documented public API.
  • This report is based on source inspection. No standalone reproduction repository is attached.

References


AI disclosure: GitHub Copilot assisted with researching and drafting this issue

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions