Skip to content

Commit 93349c0

Browse files
authored
Merge pull request #58 from rodrigoelp/typedef
Declare typescript types
2 parents 9df1453 + c524cd0 commit 93349c0

File tree

2 files changed

+77
-1
lines changed

2 files changed

+77
-1
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,6 @@
5151
},
5252
"eslintConfig": {
5353
"extends": "bambi/native"
54-
}
54+
},
55+
"types": "./src/index.d.ts"
5556
}

src/index.d.ts

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
declare module "react-native-image-header-scroll-view" {
2+
import * as React from "react";
3+
import { ScrollViewProps, ViewStyle, TextStyle, ImageStyle, Animated } from "react-native";
4+
5+
interface Dictionary {
6+
[key: string]: string;
7+
}
8+
9+
interface SourceObjectProps {
10+
uri?: string,
11+
bundle?: string;
12+
method?: string;
13+
headers?: Dictionary;
14+
body?: string;
15+
cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached';
16+
width?: number;
17+
height?: number;
18+
scale?: number;
19+
}
20+
21+
type SourceProps = number | SourceObjectProps | SourceObjectProps[];
22+
23+
interface HeaderImageScrollViewProps extends ScrollViewProps {
24+
children?: React.ReactElement;
25+
childrenStyle?: ViewStyle | TextStyle | ImageStyle;
26+
overlayColor?: string; // defaults to black
27+
fadeOutForeground?: boolean;
28+
foregroundParallaxRatio?: number; // defaults to 1
29+
maxHeight?: number; // default is 80
30+
minHeight?: number; // default is 125
31+
maxOverlayOpacity?: number; // defaults to 0.3
32+
minOverlayOpacity?: number; // defaults to 0
33+
renderFixedForeground?: () => React.ReactElement;
34+
renderForeground?: () => React.ReactElement;
35+
renderHeader?: () => React.ReactElement; // default is an empty view.
36+
renderTouchableFixedForeground?: () => React.ReactElement;
37+
ScrollViewComponent?: React.ComponentType<ScrollViewProps>;
38+
scrollViewBackgroundColor?: string; // defaults to white.
39+
headerImage?: SourceProps;
40+
useNativeDriver?: boolean; // defaults to false.
41+
headerContainerStyle?: object;
42+
fixedForegroundContainerStyles?: object;
43+
disableHeaderGrow?: boolean;
44+
}
45+
46+
interface HeaderImageScrollViewState {
47+
scrollY: Animated.Value;
48+
pageY: number;
49+
}
50+
51+
class HeaderImageScrollView extends React.Component<HeaderImageScrollViewProps, HeaderImageScrollViewState> {}
52+
53+
interface TriggeringViewProps {
54+
onBeginHidden?: Function;
55+
onHide?: Function;
56+
onBeginDisplayed?: Function;
57+
onDisplay?: Function;
58+
onTouchTop?: Function;
59+
onTouchBottom?: Function;
60+
children?: React.ReactNode;
61+
onLayout?: Function;
62+
bottomOffset?: number;
63+
topOffset?: number;
64+
}
65+
66+
interface TriggeringViewState {
67+
touched: boolean;
68+
hidden: boolean;
69+
}
70+
71+
class TriggeringView extends React.Component<TriggeringViewProps, TriggeringViewState> {}
72+
73+
export default HeaderImageScrollView;
74+
export { TriggeringView }
75+
}

0 commit comments

Comments
 (0)