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);