import React from 'react'; import { StyleProp, Text, TextStyle, TouchableOpacity, View } from 'react-native'; import styles from './styles'; import { themes } from '../../lib/constants'; import { testProps } from '../../lib/methods/testProps'; import { TSupportedThemes } from '../../theme'; interface ITabBarProps { goToPage?: (page: number) => void; activeTab?: number; tabs?: string[]; tabEmojiStyle: StyleProp; theme: TSupportedThemes; } export default class TabBar extends React.Component { shouldComponentUpdate(nextProps: ITabBarProps) { const { activeTab, theme } = this.props; if (nextProps.activeTab !== activeTab) { return true; } if (nextProps.theme !== theme) { return true; } return false; } render() { const { tabs, goToPage, tabEmojiStyle, activeTab, theme } = this.props; return ( {tabs?.map((tab, i) => ( { if (goToPage) { goToPage(i); } }} style={styles.tab} {...testProps(`reaction-picker-${tab}`)}> {tab} {activeTab === i ? ( ) : ( )} ))} ); } }