import React from 'react'; import { ScrollView, Animated } from 'react-native'; import { SlideModal } from '../../components/SlideModal'; import { Radio } from '../../components/Radio'; import dropdownStyles from './styles'; import variables from '../../common/styles/variables'; import { SlideAnimated } from '../../common/animations'; export class Dropdown extends React.Component { constructor(props) { super(props); this.slideModal = null; this.animated = null; if (variables.dropdownEnableAnimated) { this.animated = new SlideAnimated({ directionType: ['vertical'], duration: 1000, translateYList: [ props.direction === 'down' ? -20 : 20, 0, ] }); } } open() { this.animated && this.animated.toIn(); return this.slideModal.open(); } close() { return this.slideModal.close(); } getContent() { const { data, value, onChange, checkedIcon, uncheckedIcon } = this.props; let animatedStyle = {}; if (this.animated) { animatedStyle = { transform: [ { translateX: this.animated.getState().translateX }, { translateY: this.animated.getState().translateY } ], opacity: this.animated.getState().opacity }; } return (React.createElement(ScrollView, { style: [ dropdownStyles.container, this.props.style ] }, React.createElement(Animated.View, { style: animatedStyle }, React.createElement(Radio, { checkedIcon: checkedIcon, uncheckedIcon: uncheckedIcon, value: value, onChange: (value) => { this.slideModal.close(); onChange(value); } }, data.map((item, index) => { return (React.createElement(Radio.Item, { testID: item.testID, key: index, label: item.label, value: item.value })); }))))); } render() { const { direction } = this.props; const fullScreenPatch = this.props.fullScreenPatch || (direction === 'down' ? [true, false, false] : [false, false, true]); return (React.createElement(SlideModal, { ref: c => { this.slideModal = c; }, ...this.props,fullScreenPatch: fullScreenPatch, direction: this.props.direction, offsetX: this.props.offsetX, offsetY: this.props.offsetY, cancelable: this.props.cancelable }, this.getContent())); } } Dropdown.defaultProps = { ...SlideModal.defaultProps, cancelable: false, direction: 'down', fullScreenPatch: null, data: [] }; //# sourceMappingURL=index.js.map