11import React , { memo } from 'react' ;
22import { View , StyleSheet } from 'react-native' ;
3- import type { HeaderProps } from './types' ;
3+ import type { HeaderProps , NavigationProps } from './types' ;
44import PrevButton from './prev-button' ;
55import NextButton from './next-button' ;
66import Selectors from './selectors' ;
77import { isEqual } from 'lodash' ;
88
9- const Header = ( {
10- navigationPosition,
11- styles = { } ,
12- classNames = { } ,
13- } : HeaderProps ) => {
14- return (
15- < View
16- style = { [ defaultStyles . headerContainer , styles ?. header ] }
17- className = { classNames . header }
18- >
19- { navigationPosition === 'left' ? (
20- < View style = { defaultStyles . container } >
21- < View style = { defaultStyles . navigation } >
22- < PrevButton
23- style = { styles . button_prev }
24- className = { classNames . button_prev }
25- />
26- < NextButton
27- style = { styles . button_next }
28- className = { classNames . button_next }
29- />
30- </ View >
31- < Selectors position = "left" />
32- </ View >
33- ) : navigationPosition === 'right' ? (
34- < View style = { defaultStyles . container } >
35- < Selectors position = "right" />
36- < View style = { defaultStyles . navigation } >
37- < PrevButton
38- style = { styles . button_prev }
39- className = { classNames . button_prev }
40- />
41- < NextButton
42- style = { styles . button_next }
43- className = { classNames . button_next }
44- />
45- </ View >
46- </ View >
47- ) : (
48- < View style = { defaultStyles . container } >
49- < PrevButton
50- style = { styles . button_prev }
51- className = { classNames . button_prev }
52- />
53- < Selectors position = "around" />
54- < NextButton
55- style = { styles . button_next }
56- className = { classNames . button_next }
57- />
58- </ View >
59- ) }
60- </ View >
61- ) ;
62- } ;
63-
649const defaultStyles = StyleSheet . create ( {
6510 headerContainer : {
6611 paddingVertical : 3 ,
@@ -77,6 +22,66 @@ const defaultStyles = StyleSheet.create({
7722 } ,
7823} ) ;
7924
25+ const NavigationButtons = ( { styles, classNames } : NavigationProps ) => (
26+ < View style = { defaultStyles . navigation } >
27+ < PrevButton
28+ style = { styles ?. button_prev }
29+ imageStyle = { styles ?. button_prev_image }
30+ className = { classNames ?. button_prev }
31+ imageClassName = { classNames ?. button_prev_image }
32+ />
33+ < NextButton
34+ style = { styles ?. button_next }
35+ imageStyle = { styles ?. button_next_image }
36+ className = { classNames ?. button_next }
37+ imageClassName = { classNames ?. button_next_image }
38+ />
39+ </ View >
40+ ) ;
41+
42+ const Header = ( {
43+ navigationPosition = 'around' ,
44+ styles = { } ,
45+ classNames = { } ,
46+ } : HeaderProps ) => {
47+ return (
48+ < View
49+ style = { [ defaultStyles . headerContainer , styles ?. header ] }
50+ className = { classNames ?. header }
51+ >
52+ < View style = { defaultStyles . container } >
53+ { navigationPosition === 'left' ? (
54+ < >
55+ < NavigationButtons styles = { styles } classNames = { classNames } />
56+ < Selectors position = "left" />
57+ </ >
58+ ) : navigationPosition === 'right' ? (
59+ < >
60+ < Selectors position = "right" />
61+ < NavigationButtons styles = { styles } classNames = { classNames } />
62+ </ >
63+ ) : (
64+ < >
65+ < PrevButton
66+ style = { styles ?. button_prev }
67+ imageStyle = { styles ?. button_prev_image }
68+ className = { classNames ?. button_prev }
69+ imageClassName = { classNames ?. button_prev_image }
70+ />
71+ < Selectors position = "around" />
72+ < NextButton
73+ style = { styles ?. button_next }
74+ imageStyle = { styles ?. button_next_image }
75+ className = { classNames ?. button_next }
76+ imageClassName = { classNames ?. button_next_image }
77+ />
78+ </ >
79+ ) }
80+ </ View >
81+ </ View >
82+ ) ;
83+ } ;
84+
8085const customComparator = (
8186 prev : Readonly < HeaderProps > ,
8287 next : Readonly < HeaderProps >
0 commit comments