Skip to content

Commit 75a7e80

Browse files
Saurav  GuptaSaurav  Gupta
authored andcommitted
☑️ Lib setup for android
0 parents  commit 75a7e80

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+11350
-0
lines changed

.buckconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
[android]
3+
target = Google Inc.:Google APIs:23
4+
5+
[maven_repositories]
6+
central = https://repo1.maven.org/maven2

.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
android
3+
ios

.eslintrc.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module.exports = {
2+
root: true,
3+
extends: ['react-app', 'prettier'],
4+
plugins: ['prettier', 'react-hooks'],
5+
globals: {
6+
document: true,
7+
window: true,
8+
process: true,
9+
},
10+
rules: {
11+
'react-hooks/rules-of-hooks': 'error',
12+
'react-hooks/exhaustive-deps': 'warn',
13+
'prettier/prettier': [
14+
'error',
15+
{
16+
singleQuote: true,
17+
parser: 'flow',
18+
semi: false,
19+
printWidth: 120,
20+
jsxBracketSameLine: true,
21+
},
22+
],
23+
'react/react-in-jsx-scope': 0,
24+
radix: 0,
25+
},
26+
};

.flowconfig

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
[ignore]
2+
; We fork some components by platform
3+
.*/*[.]android.js
4+
5+
; Ignore "BUCK" generated dirs
6+
<PROJECT_ROOT>/\.buckd/
7+
8+
; Ignore polyfills
9+
node_modules/react-native/Libraries/polyfills/.*
10+
11+
; These should not be required directly
12+
; require from fbjs/lib instead: require('fbjs/lib/warning')
13+
node_modules/warning/.*
14+
15+
; Flow doesn't support platforms
16+
.*/Libraries/Utilities/LoadingView.js
17+
18+
[untyped]
19+
.*/node_modules/@react-native-community/cli/.*/.*
20+
21+
[include]
22+
23+
[libs]
24+
node_modules/react-native/interface.js
25+
node_modules/react-native/flow/
26+
27+
[options]
28+
emoji=true
29+
30+
esproposal.optional_chaining=enable
31+
esproposal.nullish_coalescing=enable
32+
33+
module.file_ext=.js
34+
module.file_ext=.json
35+
module.file_ext=.ios.js
36+
37+
munge_underscores=true
38+
39+
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
40+
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
41+
42+
suppress_type=$FlowIssue
43+
suppress_type=$FlowFixMe
44+
suppress_type=$FlowFixMeProps
45+
suppress_type=$FlowFixMeState
46+
47+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
48+
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
49+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
50+
51+
[lints]
52+
sketchy-null-number=warn
53+
sketchy-null-mixed=warn
54+
sketchy-number=warn
55+
untyped-type-import=warn
56+
nonstrict-import=warn
57+
deprecated-type=warn
58+
unsafe-getters-setters=warn
59+
unnecessary-invariant=warn
60+
signature-verification-failure=warn
61+
deprecated-utility=error
62+
63+
[strict]
64+
deprecated-type
65+
nonstrict-import
66+
sketchy-null
67+
unclear-type
68+
unsafe-getters-setters
69+
untyped-import
70+
untyped-type-import
71+
72+
[version]
73+
^0.122.0

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.pbxproj -text

.gitignore

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# OSX
2+
#
3+
.DS_Store
4+
5+
# Xcode
6+
#
7+
build/
8+
*.pbxuser
9+
!default.pbxuser
10+
*.mode1v3
11+
!default.mode1v3
12+
*.mode2v3
13+
!default.mode2v3
14+
*.perspectivev3
15+
!default.perspectivev3
16+
xcuserdata
17+
*.xccheckout
18+
*.moved-aside
19+
DerivedData
20+
*.hmap
21+
*.ipa
22+
*.xcuserstate
23+
24+
# Android/IntelliJ
25+
#
26+
build/
27+
.idea
28+
.gradle
29+
local.properties
30+
*.iml
31+
32+
# node.js
33+
#
34+
node_modules/
35+
npm-debug.log
36+
yarn-error.log
37+
38+
# BUCK
39+
buck-out/
40+
\.buckd/
41+
*.keystore
42+
!debug.keystore
43+
44+
# fastlane
45+
#
46+
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47+
# screenshots whenever they are needed.
48+
# For more information about the recommended setup visit:
49+
# https://docs.fastlane.tools/best-practices/source-control/
50+
51+
*/fastlane/report.xml
52+
*/fastlane/Preview.html
53+
*/fastlane/screenshots
54+
55+
# Bundle artifact
56+
*.jsbundle
57+
58+
# CocoaPods
59+
/ios/Pods/

.watchmanconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

App.js

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
import React, { useState } from 'react'
2+
import { Text, View } from 'react-native'
3+
import SelectBox from 'react-native-multi-selectbox'
4+
import { xorBy } from 'lodash'
5+
6+
// Options data must contain 'item' & 'id' keys
7+
8+
const K_OPTIONS = [
9+
{
10+
item: 'Juventus',
11+
id: 'JUVE',
12+
},
13+
{
14+
item: 'Real Madrid',
15+
id: 'RM',
16+
},
17+
{
18+
item: 'Barcelona',
19+
id: 'BR',
20+
},
21+
{
22+
item: 'PSG',
23+
id: 'PSG',
24+
},
25+
{
26+
item: 'FC Bayern Munich',
27+
id: 'FBM',
28+
},
29+
{
30+
item: 'Manchester United FC',
31+
id: 'MUN',
32+
},
33+
{
34+
item: 'Manchester City FC',
35+
id: 'MCI',
36+
},
37+
{
38+
item: 'Everton FC',
39+
id: 'EVE',
40+
},
41+
{
42+
item: 'Tottenham Hotspur FC',
43+
id: 'TOT',
44+
},
45+
{
46+
item: 'Chelsea FC',
47+
id: 'CHE',
48+
},
49+
{
50+
item: 'Liverpool FC',
51+
id: 'LIV',
52+
},
53+
{
54+
item: 'Arsenal FC',
55+
id: 'ARS',
56+
},
57+
58+
{
59+
item: 'Leicester City FC',
60+
id: 'LEI',
61+
},
62+
]
63+
64+
function App() {
65+
const [selectedLocations, setSelectedLocations] = useState({})
66+
const [selectedValues, setSelectedValues] = useState([])
67+
return (
68+
<View style={{ margin: 30 }}>
69+
<View style={{ width: '100%', alignItems: 'center' }}>
70+
<Text style={{ fontSize: 30, paddingBottom: 20 }}>Demos</Text>
71+
</View>
72+
<Text style={{ fontSize: 20, paddingBottom: 10 }}>Select Demo</Text>
73+
<SelectBox
74+
label="Select single"
75+
options={K_OPTIONS}
76+
value={selectedLocations}
77+
onChange={onChange()}
78+
hideInputFilter={false}
79+
/>
80+
<View style={{ height: 40 }} />
81+
<Text style={{ fontSize: 20, paddingBottom: 10 }}>MultiSelect Demo</Text>
82+
<SelectBox
83+
label="Select multiple"
84+
options={K_OPTIONS}
85+
selectedValues={selectedValues}
86+
onMultiSelect={onMultiChange()}
87+
onTapClose={onMultiChange()}
88+
isMulti
89+
/>
90+
</View>
91+
)
92+
93+
function onMultiChange() {
94+
return (item) => setSelectedValues(xorBy(selectedValues, [item], 'id'))
95+
}
96+
97+
function onChange() {
98+
return (val) => setSelectedLocations(val)
99+
}
100+
}
101+
102+
export default App

__tests__/App-test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* @format
3+
*/
4+
5+
import 'react-native'
6+
import React from 'react'
7+
import App from '../App'
8+
9+
// Note: test renderer must be required after react-native.
10+
import renderer from 'react-test-renderer'
11+
12+
it('renders correctly', () => {
13+
renderer.create(<App />)
14+
})

android/app/_BUCK

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# To learn about Buck see [Docs](https://buckbuild.com/).
2+
# To run your application with Buck:
3+
# - install Buck
4+
# - `npm start` - to start the packager
5+
# - `cd android`
6+
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7+
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8+
# - `buck install -r android/app` - compile, install and run application
9+
#
10+
11+
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12+
13+
lib_deps = []
14+
15+
create_aar_targets(glob(["libs/*.aar"]))
16+
17+
create_jar_targets(glob(["libs/*.jar"]))
18+
19+
android_library(
20+
name = "all-libs",
21+
exported_deps = lib_deps,
22+
)
23+
24+
android_library(
25+
name = "app-code",
26+
srcs = glob([
27+
"src/main/java/**/*.java",
28+
]),
29+
deps = [
30+
":all-libs",
31+
":build_config",
32+
":res",
33+
],
34+
)
35+
36+
android_build_config(
37+
name = "build_config",
38+
package = "com.reactcore",
39+
)
40+
41+
android_resource(
42+
name = "res",
43+
package = "com.reactcore",
44+
res = "src/main/res",
45+
)
46+
47+
android_binary(
48+
name = "app",
49+
keystore = "//android/keystores:debug",
50+
manifest = "src/main/AndroidManifest.xml",
51+
package_type = "debug",
52+
deps = [
53+
":app-code",
54+
],
55+
)

0 commit comments

Comments
 (0)