import React, { memo, useMemo } from 'react'; import { View, StyleSheet } from 'react-native'; import type { HeaderProps, NavigationProps } from './types'; import PrevButton from './prev-button'; import NextButton from './next-button'; import Selectors from './selectors'; import { isEqual } from 'lodash'; const createDefaultStyles = (isRTL: boolean) => StyleSheet.create({ headerContainer: { paddingVertical: 3, }, container: { padding: 5, gap: 20, flexDirection: isRTL ? 'row-reverse' : 'row', alignItems: 'center', justifyContent: 'space-between', }, navigation: { flexDirection: isRTL ? 'row-reverse' : 'row', }, }); const NavigationButtons = ({ styles, classNames, isRTL }: NavigationProps) => { const style = useMemo(() => createDefaultStyles(isRTL), [isRTL]); return ( ); }; const Header = ({ navigationPosition = 'around', styles = {}, classNames = {}, isRTL, }: HeaderProps) => { const style = useMemo(() => createDefaultStyles(isRTL), [isRTL]); return ( {navigationPosition === 'left' ? ( <> ) : navigationPosition === 'right' ? ( <> ) : ( <> )} ); }; const customComparator = ( prev: Readonly, next: Readonly ) => { const areEqual = prev.PrevIcon === next.PrevIcon && prev.NextIcon === next.NextIcon && prev.navigationPosition === next.navigationPosition && prev.isRTL === next.isRTL && isEqual(prev.styles, next.styles) && isEqual(prev.classNames, next.classNames); return areEqual; }; export default memo(Header, customComparator);