UNPKG

@fruits-chain/react-native-xiaoshu

Version:
62 lines (59 loc) β€’ 2.16 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { useMemo, useRef, memo } from 'react'; import { View } from 'react-native'; import { varCreator as varCreatorDivider } from '../divider/style'; import { getDefaultValue } from '../helpers'; import Theme from '../theme'; import { DropdownConfig } from './context'; import { varCreator, styleCreator } from './style'; /** * DropdownMenu δΈ‹ζ‹‰θœε•ηš„ζ¨ͺ村 */ const DropdownMenu = _ref => { let { titleStyle, titleTextStyle, iconStyle, activeColor, direction = 'down', duration, zIndex = 10, // overlay = true, // closeOnPressOverlay = true, closeOnPressOutside = true, divider = true, style, ...restProps } = _ref; const MenuRef = useRef(null); const TOKENS = Theme.useThemeTokens(); const CV = Theme.createVar(TOKENS, varCreator); const CV_DIVIDER = Theme.createVar(TOKENS, varCreatorDivider); const STYLES = Theme.createStyle(CV, styleCreator); activeColor = getDefaultValue(activeColor, CV.dropdown_active_color); duration = getDefaultValue(duration, TOKENS.animation_duration_fast); const config = useMemo(() => ({ titleStyle, titleTextStyle, iconStyle, activeColor, direction, duration, zIndex, closeOnPressOutside, MenuRef }), [activeColor, closeOnPressOutside, direction, duration, iconStyle, titleStyle, titleTextStyle, zIndex]); const dividerStyle = { borderBottomColor: CV_DIVIDER.divider_color_light, borderBottomWidth: divider ? 1 : 0 }; return /*#__PURE__*/React.createElement(DropdownConfig.Provider, { value: config }, /*#__PURE__*/React.createElement(View, _extends({}, restProps, { collapsable: false, ref: MenuRef, style: [STYLES.menu, dividerStyle, style] }))); }; export default /*#__PURE__*/memo(DropdownMenu); //# sourceMappingURL=dropdown-menu.js.map