A header library for react-native. Uses power of reanimated2.
npm install @oguzturker8/header
import Header from '@oguzturker8/header';
// ...
<NavigationContainer>
// ....
<Stack.Navigator>
// ...
<Stack.Screen
name="Screen1"
component={Screen1}
options={{
header: (props) => <Header {...props} title="title1337" />,
}}
/>
// ...
</Stack.Navigator>
</NavigationContainer>;
// ...
import Header from '@oguzturker8/header';
// ...
<NavigationContainer>
// ....
<Stack.Navigator>
// ...
<Stack.Screen
name="Screen4"
component={Screen4}
// Declare it in Screen Component
// options={{
// header: (props) => (
// <Header {...props} title="Screen 04" type={{ right: 'close' }} />
// ),
// }}
/>
// ...
</Stack.Navigator>
</NavigationContainer>;
// ...
import {
AnimatedScrollView,
Header,
useHeaderAnimation,
} from '@oguzturker8/header';
function Screen4({ navigation }: screenNavigation) {
const { scrollOffset, scrollHandler } = useHeaderAnimation();
React.useLayoutEffect(() => {
navigation.setOptions({
header: (props) => (
<Header
{...props}
title="Screen 04"
type={{ right: 'close' }}
animation={{
animatedValue: scrollOffset,
background: {
colorRange: ['blue', 'red'],
slidingRange: [0, 100],
},
}}
/>
),
});
}, [navigation]);
return (
<AnimatedScrollView onScroll={scrollHandler}>
<View style={styles.container}>
<Text>Screen4</Text>
<Button title="Reset stack" onPress={() => navigation.popToTop()} />
<Text>Screen4</Text>
{Array.from({ length: 100 }, (_, i) => (
<Text key={i}>{`${i + 1}. Text`}</Text>
))}
</View>
</AnimatedScrollView>
);
}
Prop | Description | Type |
---|---|---|
style | Header container style prop. Includes 5 parts leftStyle rightStyle centerStyle wrapperStyle titleStyle |
leftStyle?: ViewStyle rightStyle?: ViewStyle centerStyle?: ViewStyle wrapperStyle?: ViewStyle titleStyle?: TextStyle |
title | Header title text | string |
type | Decides left and right parts' types | LeftType = 'back' - 'close' RightType = 'back' - 'close' |
callback | Parts' onPress callbacks | onLeft?: () => any onRight?: () => any onCenter?: () => any |
size | Parts' text sizes | left?: number right?: number center?: number |
animation | Header animations | Described below section |
Animations | Description | Type |
---|---|---|
background | Header backgroundColor interpolation animation based on ScrollView's scrollOffset. | colorRange: string[] slidingRange: string[] |
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT