import React from 'react' import {StyleSheet, TouchableOpacity, useWindowDimensions} from 'react-native' import { View, Text, useMergedProps, useBlossomTheme, } from '@react-native-blossom-ui/components' import {ActionSheetViewProps} from './types' const HORIZONTAL_PADDING = 16 function ActionSheetView(props: ActionSheetViewProps) { const {colors, isDark} = useBlossomTheme() const {width: screenWidth} = useWindowDimensions() const { title, titleStyle, message, messageStyle, options, withCancelButton, onItemPress, itemStyle, cancelButtonLabel = 'Cancel', cancelButtonTextStyle, containerStyle, } = useMergedProps('ActionSheetView', props, { colors, isDark, }) return ( {title ? ( {title} ) : null} {message ? ( {message} ) : null} {title || message ? ( ) : null} {options?.map((item, index) => ( { onItemPress?.(item.key, index) }}> {item.icon} {item.label} {index !== options.length - 1 && ( )} ))} {withCancelButton && ( { onItemPress?.('cancel', options.length) }}> {cancelButtonLabel} )} ) } export default ActionSheetView const styles = StyleSheet.create({ outerContainer: { marginBottom: 24, }, containerLight: { borderRadius: 14, backgroundColor: '#F2F2F7', }, containerDark: { borderRadius: 14, backgroundColor: '#1C1C1E', }, itemTextStyle: { fontWeight: 'bold', }, cancelTextStyle: { fontWeight: '500', }, textStyle: { textAlign: 'center', paddingHorizontal: 8, paddingTop: 16, }, item: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', paddingHorizontal: 16, paddingVertical: 20, }, cancelButton: { marginTop: 12, borderRadius: 16, }, divider: { marginTop: 16, }, itemDividerLight: { backgroundColor: 'rgba(60,60,67,0.29)', height: 1, }, itemDividerDark: { backgroundColor: 'rgba(84,84,88,0.65)', height: 1, }, })