Files
frontend/web-shims/react-native/Libraries/Utilities/codegenNativeComponent.js
lafay dcae47218f
Some checks failed
Frontend CI / ota-android (push) Failing after 11s
Frontend CI / build-and-push-web (push) Failing after 1m14s
Frontend CI / build-android-apk (push) Has been cancelled
build(metro): add web shims for native React Native API compatibility
Add Metro configuration to resolve native-only React Native APIs with web-compatible shims. This enables packages like react-native-pager-view to work on the web platform by providing shim implementations for codegenNativeComponent, codegenNativeCommands, and CodegenTypes that are unavailable in react-native-web.

Also simplify Android signing configuration in CI by using standard Gradle property names (MYAPP_UPLOAD_*) and remove the build.gradle patching step.
2026-04-22 20:17:38 +08:00

18 lines
547 B
JavaScript

const React = require('react');
function codegenNativeComponent(componentName, options) {
const componentNameClean = componentName
.replace(/^RNC/, '')
.replace(/^RNS/, '')
.replace(/^RN/, '');
const NativeComponent = React.forwardRef((props, ref) => {
const { children, ...rest } = props;
return React.createElement('div', { ...rest, ref, 'data-native-component': componentNameClean }, children);
});
NativeComponent.displayName = componentName;
return NativeComponent;
}
module.exports = codegenNativeComponent;