import { TouchableWithoutFeedbackProps as RNTouchableWithoutFeedbackProps } from 'react-native'; import { createComponent, createElement, createHook } from 'bumbag/utils'; import { Box, BoxProps } from './Box'; import * as styles from './Box.styles'; import { throttle } from '../utils'; export type LocalBoxTouchableWithoutFeedbackProps = { throttle?: boolean | number; }; export type BoxTouchableWithoutFeedbackProps = BoxProps & RNTouchableWithoutFeedbackProps & LocalBoxTouchableWithoutFeedbackProps; const useProps = createHook( (props) => { const boxProps = Box.useProps(props); return { ...boxProps, onPress: throttle(props.onPress, props.throttle) }; }, { themeKey: 'native.Box.TouchableWithoutFeedback' } ); export const BoxTouchableWithoutFeedback = createComponent( (props) => { const boxProps = useProps(props); return createElement({ children: props.children, component: styles.StyledBoxTouchableWithoutFeedback, htmlProps: boxProps, }); }, { attach: { useProps, displayName: 'native.Box.TouchableWithoutFeedback', }, themeKey: 'native.Box.TouchableWithoutFeedback', } );