Skip to content

Commit cc9bc19

Browse files
Introduce foregroundExtrapolate prop.
1 parent 3d9d011 commit cc9bc19

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

src/ImageHeaderScrollView.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export type Props = ScrollViewProps & {
3838
renderFixedForeground: () => React$Element<any>,
3939
renderForeground?: () => React$Element<any>,
4040
renderHeader: () => React$Element<any>,
41+
foregroundExtrapolate: string,
4142
renderTouchableFixedForeground?: ?() => React$Element<any>,
4243
ScrollViewComponent: React$ComponentType<ScrollViewProps>,
4344
scrollViewBackgroundColor: string,
@@ -58,6 +59,7 @@ export type DefaultProps = {
5859
minOverlayOpacity: number,
5960
renderFixedForeground: () => React$Element<any>,
6061
renderHeader: () => React$Element<any>,
62+
foregroundExtrapolate: string,
6163
ScrollViewComponent: React$ComponentType<ScrollViewProps>,
6264
scrollViewBackgroundColor: string,
6365
};
@@ -84,6 +86,7 @@ class ImageHeaderScrollView extends Component<Props, State> {
8486
minHeight: 80,
8587
minOverlayOpacity: 0,
8688
renderFixedForeground: () => <View />,
89+
foregroundExtrapolate: 'clamp',
8790
renderHeader: () => <View />,
8891
ScrollViewComponent: ScrollView,
8992
scrollViewBackgroundColor: 'white',
@@ -169,7 +172,7 @@ class ImageHeaderScrollView extends Component<Props, State> {
169172
const headerTranslate = this.state.scrollY.interpolate({
170173
inputRange: [0, this.props.maxHeight * 2],
171174
outputRange: [0, -this.props.maxHeight * 2 * this.props.foregroundParallaxRatio],
172-
extrapolate: 'clamp',
175+
extrapolate: this.props.foregroundExtrapolate,
173176
});
174177

175178
const headerTransformStyle = {

src/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ declare module "react-native-image-header-scroll-view" {
3333
renderFixedForeground?: () => React.ReactElement;
3434
renderForeground?: () => React.ReactElement;
3535
renderHeader?: () => React.ReactElement; // default is an empty view.
36+
foregroundExtrapolate: string;
3637
renderTouchableFixedForeground?: () => React.ReactElement;
3738
ScrollViewComponent?: React.ComponentType<ScrollViewProps>;
3839
scrollViewBackgroundColor?: string; // defaults to white.

0 commit comments

Comments
 (0)