Rocket.Chat.ReactNative/app/views/SidebarView/SidebarItem.tsx

37 lines
1.0 KiB
TypeScript
Raw Normal View History

2019-03-12 16:23:06 +00:00
import React from 'react';
import { Text, View } from 'react-native';
2019-03-12 16:23:06 +00:00
import Touch from '../../lib/methods/helpers/touch';
import { themes } from '../../lib/constants';
import { TSupportedThemes, withTheme } from '../../theme';
import styles from './styles';
2019-03-12 16:23:06 +00:00
interface SidebarItemProps {
left: JSX.Element;
right?: JSX.Element;
text: string;
current?: boolean;
onPress(): void;
testID: string;
theme: TSupportedThemes;
}
const Item = React.memo(({ left, right, text, onPress, testID, current, theme }: SidebarItemProps) => (
2019-12-04 16:39:53 +00:00
<Touch
2019-03-12 16:23:06 +00:00
key={testID}
testID={testID}
onPress={onPress}
2019-12-04 16:39:53 +00:00
theme={theme}
style={[styles.item, current && { backgroundColor: themes[theme].borderColor }]}>
<View style={styles.itemHorizontal}>{left}</View>
2019-03-12 16:23:06 +00:00
<View style={styles.itemCenter}>
<Text style={[styles.itemText, { color: themes[theme].titleText }]} numberOfLines={1} accessibilityLabel={text}>
2019-03-12 16:23:06 +00:00
{text}
</Text>
</View>
<View style={styles.itemHorizontal}>{right}</View>
2019-12-04 16:39:53 +00:00
</Touch>
2019-03-12 16:23:06 +00:00
));
2019-12-04 16:39:53 +00:00
export default withTheme(Item);