import * as React from 'react'; import color from 'color'; import { StyleSheet, StyleProp, View, ViewStyle, ViewProps, } from 'react-native'; import TouchableRipple from '../TouchableRipple/TouchableRipple'; import { black, white } from '../../styles/colors'; import { withTheme } from '../../core/theming'; import type { $RemoveChildren } from '../../types'; type Props = $RemoveChildren & { /** * Content of the `DataTableRow`. */ children: React.ReactNode; /** * Function to execute on press. */ onPress?: () => void; style?: StyleProp; /** * @optional */ theme: ReactNativePaper.Theme; /** * `pointerEvents` passed to the `View` container, which is wrapping children within `TouchableRipple`. */ pointerEvents?: ViewProps['pointerEvents']; }; /** * A component to show a single row inside of a table. * *
*
* *
*
* * * ## Usage * ```js * import * as React from 'react'; * import { DataTable } from 'react-native-paper'; * * const MyComponent = () => ( * * 1 * 2 * 3 * 4 * * ); * * export default MyComponent; * ``` */ const DataTableRow = ({ onPress, style, theme, children, pointerEvents, ...rest }: Props) => { const borderBottomColor = color(theme.dark ? white : black) .alpha(0.12) .rgb() .string(); return ( {children} ); }; DataTableRow.displayName = 'DataTable.Row'; const styles = StyleSheet.create({ container: { borderStyle: 'solid', borderBottomWidth: StyleSheet.hairlineWidth, minHeight: 48, paddingHorizontal: 16, }, content: { flex: 1, flexDirection: 'row', }, }); export default withTheme(DataTableRow); // @component-docs ignore-next-line export { DataTableRow };