Skip to content

Commit 01682b7

Browse files
authored
feat: add image style prop (#25)
* feat: update typings * fix: change typings to image * feat: add imageStyles prop AnimatedScrollView * docs: update README * chore: rename styles to style
1 parent 84964f2 commit 01682b7

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

README.md

+10-9
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,16 @@ Also a running snack [here](https://snack.expo.dev/ukGomwbdE)
4343

4444
# Props
4545

46-
| Prop name | Description | Type | Required |
47-
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------|---------------------|----------|
48-
| `TopNavBarComponent` | Rendered on top of the screen as a navbar when scrolling to the top | JSX.Element | true |
49-
| `HeaderComponent` | A component to use on top of header image. It can also be used without header image to render a custom component as header. | JSX.Element | false |
50-
| `HeaderNavbarComponent` | Rendered on top of the header. Transitions to TopNavbarComponent as you scroll | JSX.Element | false |
51-
| `headerMaxHeight` | Height of the header (headerImage or HeaderComponent). Default value is 300 | number | false |
52-
| `topBarHeight` | Height of the top navbar. Default value is 90 | number | false |
53-
| `headerImage` | Image header source | ImageSourcePropType | false |
54-
| `disableScale` | Disables header scaling when scrolling. Default value is false | boolean | false |
46+
| Prop name | Description | Type | Required |
47+
|--------------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------|----------|
48+
| `TopNavBarComponent` | Rendered on top of the screen as a navbar when scrolling to the top | JSX.Element | true |
49+
| `HeaderComponent` | A component to use on top of header image. It can also be used without header image to render a custom component as header. | JSX.Element | false |
50+
| `HeaderNavbarComponent` | Rendered on top of the header. Transitions to TopNavbarComponent as you scroll | JSX.Element | false |
51+
| `headerMaxHeight` | Height of the header (headerImage or HeaderComponent). Default value is 300 | number | false |
52+
| `topBarHeight` | Height of the top navbar. Default value is 90 | number | false |
53+
| `headerImage` | Image header source | ImageSourcePropType | false |
54+
| `disableScale` | Disables header scaling when scrolling. Default value is false | boolean | false |
55+
| `imageStyle` | Image styles | StyleProp<ImageStyle> | false |
5556

5657

5758

src/components/AnimatedScrollView.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export const AnimatedScrollView = ({
2020
headerImage,
2121
disableScale,
2222
children,
23+
imageStyle,
2324
...props
2425
}: AnimatedScrollViewProps) => {
2526
const { width } = useWindowDimensions();
@@ -61,6 +62,7 @@ export const AnimatedScrollView = ({
6162
{ translateY: translateYDown },
6263
],
6364
},
65+
imageStyle,
6466
]}
6567
>
6668
{HeaderComponent}
@@ -94,6 +96,7 @@ export const AnimatedScrollView = ({
9496
{ translateY: translateYDown },
9597
],
9698
},
99+
imageStyle,
97100
]}
98101
/>
99102
)}

src/types.d.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ScrollViewProps } from 'react-native';
1+
import type { ImageStyle, ScrollViewProps, StyleProp } from 'react-native';
22
import { Animated, ImageSourcePropType } from 'react-native';
33

44
export interface AnimatedScrollViewProps extends ScrollViewProps {
@@ -37,6 +37,11 @@ export interface AnimatedScrollViewProps extends ScrollViewProps {
3737
* Disables header scaling when scrolling
3838
*/
3939
disableScale?: boolean;
40+
41+
/**
42+
* Image styles
43+
*/
44+
imageStyle?: StyleProp<ImageStyle>;
4045
}
4146

4247
export interface AnimatedHeaderProps {

0 commit comments

Comments
 (0)