Files
react-native/packages/react-native-popup-menu-android/js/PopupMenuAndroid.js
T
Ramanpreet NaraandFacebook GitHub Bot 8bced4b29d Pull PopupMenuAndroid out of React Native core
Summary:
**History:** This component was originally introduced into React Native core in D52712758, to replace UIManagerModule.showPopupMenu().

**Problem:** But, React Native core should be lean. Adding this component to React Native bloats the core.

**Changes:** So, this diff pulls PopupMenuAndroid out into its own package in the react-native GitHub repository.

In the future, this will be migrated to a community package!

Changelog: [Android][Removed] Move PopupMenu out of React Native core

Reviewed By: NickGerleman

Differential Revision: D53328110

fbshipit-source-id: 469d8dc3e756c06040c72e08fa004aafa1bd6e18
2024-02-23 16:43:18 -08:00

55 lines
1.3 KiB
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow strict-local
*/
import type {RefObject} from 'react';
import type {Node} from 'react';
import * as React from 'react';
import {StyleSheet, View} from 'react-native';
/**
* Common implementation for a simple stubbed view. Simply applies the view's styles to the inner
* View component and renders its children.
*/
class UnimplementedView extends React.Component<{children: Node}> {
render(): React.Node {
return (
<View style={[styles.unimplementedView]}>{this.props.children}</View>
);
}
}
const styles = StyleSheet.create({
unimplementedView: __DEV__
? {
alignSelf: 'flex-start',
borderColor: 'red',
borderWidth: 1,
}
: {},
});
export type PopupMenuAndroidInstance = {
+show: () => void,
};
type Props = {
menuItems: $ReadOnlyArray<string>,
onSelectionChange: number => void,
children: Node,
instanceRef: RefObject<?PopupMenuAndroidInstance>,
};
function PopupMenuAndroid(props: Props): Node {
return <UnimplementedView>{props.children}</UnimplementedView>;
}
export default PopupMenuAndroid;