Skip to content

Commit a2ed1c6

Browse files
committed
AppleHeader is completed and integrated
1 parent 6338a49 commit a2ed1c6

10 files changed

+99
-21
lines changed

.DS_Store

0 Bytes
Binary file not shown.
Loading

example/.eslintrc.js

+14-16
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
1-
'use strict';
2-
31
module.exports = {
4-
parser: 'babel-eslint',
5-
extends: 'airbnb',
6-
plugins: ['react', 'react-native'],
2+
parser: "babel-eslint",
3+
extends: "airbnb",
4+
plugins: ["react", "react-native"],
75
env: {
86
jest: true,
9-
'react-native/react-native': true,
7+
"react-native/react-native": true
108
},
119
rules: {
1210
// allow js file extension
13-
'react/jsx-filename-extension': [
14-
'error',
11+
"react/jsx-filename-extension": [
12+
"error",
1513
{
16-
extensions: ['.js', '.jsx'],
17-
},
14+
extensions: [".js", ".jsx"]
15+
}
1816
],
1917
// for post defining style object in react-native
20-
'no-use-before-define': ['error', { variables: false }],
18+
"no-use-before-define": ["error", { variables: false }],
2119
// react-native rules
22-
'react-native/no-unused-styles': 2,
23-
'react-native/split-platform-components': 2,
24-
'react-native/no-inline-styles': 2,
25-
'react-native/no-raw-text': 2,
26-
},
20+
"react-native/no-unused-styles": 2,
21+
"react-native/split-platform-components": 2,
22+
"react-native/no-inline-styles": 2,
23+
"react-native/no-raw-text": 2
24+
}
2725
};

example/App.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import React, { Fragment } from "react";
22
import { StatusBar, SafeAreaView } from "react-native";
3-
import { ClassicHeader, ModernHeader } from "@freakycoder/react-native-header-view";
3+
import {
4+
AppleHeader,
5+
ModernHeader,
6+
ClassicHeader
7+
} from "@freakycoder/react-native-header-view";
48

59
const App = () => {
610
return (
@@ -19,7 +23,8 @@ const App = () => {
1923
</TouchableOpacity>
2024
}
2125
/> */}
22-
<ModernHeader />
26+
{/* <ModernHeader /> */}
27+
<AppleHeader />
2328
</SafeAreaView>
2429
</Fragment>
2530
);
Loading

example/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"lint": "eslint ."
99
},
1010
"dependencies": {
11-
"@freakycoder/react-native-header-view": "^0.3.11",
11+
"@freakycoder/react-native-header-view": "^0.4.0",
1212
"react": "16.8.6",
1313
"react-native": "0.60.4",
1414
"react-native-dynamic-vector-icons": "0.0.4",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import React from "react";
2+
import PropTypes from "prop-types";
3+
import { Text, View, Image, TouchableOpacity } from "react-native";
4+
import styles from "./AppleHeader.style";
5+
6+
const AppleHeader = props => {
7+
const { dateTitle, largeTitle, imageSource, onPress } = props;
8+
return (
9+
<View style={styles.container} {...props}>
10+
<View>
11+
<Text style={styles.date}>{dateTitle}</Text>
12+
<Text style={styles.largeTitleStyle}>{largeTitle}</Text>
13+
</View>
14+
<TouchableOpacity style={styles.avatarContainerStyle} onPress={onPress}>
15+
<Image style={styles.avatar} source={imageSource} {...props} />
16+
</TouchableOpacity>
17+
</View>
18+
);
19+
};
20+
21+
AppleHeader.propTypes = {
22+
dateTitle: PropTypes.string,
23+
largeTitle: PropTypes.string
24+
};
25+
26+
AppleHeader.defaultProps = {
27+
dateTitle: "MONDAY, 27 NOVEMBER",
28+
largeTitle: "For You",
29+
imageSource: require("../../../../assets/temp/joshua-rawson-harris-NdZtmw_jlMk-unsplash.jpg")
30+
};
31+
32+
export default AppleHeader;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { Platform } from "react-native";
2+
3+
export default {
4+
container: {
5+
paddingBottom: 8,
6+
flexDirection: "row",
7+
marginHorizontal: 16,
8+
borderBottomWidth: 1,
9+
borderColor: "#EFEFF4",
10+
alignItems: "flex-start",
11+
justifyContent: "space-between"
12+
},
13+
largeTitleStyle: {
14+
fontSize: 34,
15+
lineHeight: 41,
16+
fontWeight: "bold",
17+
letterSpacing: Platform.OS === "ios" ? 0.41 : undefined
18+
},
19+
date: {
20+
color: "#8E8E93",
21+
fontWeight: "600",
22+
fontSize: 13,
23+
lineHeight: 18,
24+
letterSpacing: Platform.OS === "ios" ? -0.08 : undefined
25+
},
26+
avatar: {
27+
height: 43,
28+
width: 43,
29+
borderRadius: 43 / 2
30+
},
31+
avatarContainerStyle: {
32+
alignSelf: "center",
33+
justifyContent: "center"
34+
}
35+
};

lib/src/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import ClassicHeader from "./components/ClassicHeader/ClassicHeader";
22
import ModernHeader from "./components/ModernHeader/ModernHeader";
3+
import AppleHeader from "./components/AppleHeader/AppleHeader";
34

4-
export { ClassicHeader, ModernHeader };
5+
export { ClassicHeader, ModernHeader, AppleHeader };

package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
{
22
"name": "@freakycoder/react-native-header-view",
3-
"version": "0.3.11",
3+
"version": "0.4.0",
44
"description": "Fully customizable Header View for React Native.",
55
"keywords": [
6+
"apple",
7+
"apple-header",
8+
"header",
9+
"classic",
10+
"modern",
11+
"modern-header",
12+
"classic-header",
613
"react-native",
714
"icons",
815
"javascript",

0 commit comments

Comments
 (0)