Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated example for RN 0.42+. This commit does not solve #25 #28

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Example/.babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"presets": ["react-native"]
}
6 changes: 6 additions & 0 deletions Example/.buckconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

[android]
target = Google Inc.:Google APIs:23

[maven_repositories]
central = https://repo1.maven.org/maven2
13 changes: 13 additions & 0 deletions Example/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# http://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
46 changes: 46 additions & 0 deletions Example/.flowconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js

; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/

; Ignore unexpected extra "@providesModule"
.*/node_modules/.*/node_modules/fbjs/.*

; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js
.*/Libraries/react-native/ReactNative.js

[include]

[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow
flow/

[options]
emoji=true

module.system=haste

experimental.strict_type_args=true

munge_underscores=true

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\)$' -> 'RelativeImageStub'

suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-8]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-8]\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy

unsafe.enable_getters_and_setters=true

[version]
^0.38.0
1 change: 1 addition & 0 deletions Example/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pbxproj -text
53 changes: 53 additions & 0 deletions Example/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# OSX
#
.DS_Store

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml

# node.js
#
node_modules/
npm-debug.log
yarn-error.log

# BUCK
buck-out/
\.buckd/
*.keystore

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
9 changes: 9 additions & 0 deletions Example/.vscode/launchReactNative.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// This file is automatically generated by [email protected]
// Please do not modify it manually. All changes will be lost.
try {
var path = require("path");
var Launcher = require("C:\\Users\\PC\\.vscode\\extensions\\vsmobile.vscode-react-native-0.2.5\\out\\debugger\\launcher.js").Launcher;
new Launcher("c:\\svil\\react-native-popover\\Example", "c:\\svil\\react-native-popover\\Example").launch();
} catch (e) {
throw new Error("Unable to launch application. Try deleting .vscode/launchReactNative.js and restarting vscode.");
}
1 change: 1 addition & 0 deletions Example/.watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
127 changes: 127 additions & 0 deletions Example/PopoverExample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Dimensions,
Text,
TouchableHighlight,
View
} from 'react-native';
import Popover from 'react-native-popover';

const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'rgb(43, 186, 180)',
},
grid: {
marginTop: 20,
flex: 1,
justifyContent: 'space-between',
},
row: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
},
button: {
borderRadius: 4,
padding: 10,
margin: 10,
backgroundColor: 'white',
opacity: 0.8,
},
buttonText: {
fontSize: 12,
fontWeight: 'bold',
},
popoverContent: {
width: 200,
height: 70,
justifyContent: 'center',
alignItems: 'center',
},
popoverText: {
color: '#ccc',
},
});

const { width, height } = Dimensions.get('window');
const displayArea = {
x: 5,
y: 20,
width: width - 10,
height: height- 25,
};

export default class PopoverExample extends Component {
state = {
isVisible: false,
buttonRect: {},
};

showPopover = (ref) => {
this.refs[ref].measure((ox, oy, width, height, px, py) => {
this.setState({
isVisible: true,
buttonRect: {
x: px,
y: py,
width,
height,
},
});
});
}

closePopover = () => {
this.setState({
isVisible: false,
});
}

renderButton = (text, ref) => (
<TouchableHighlight
ref={ref}
style={styles.button}
onPress={() => this.showPopover(ref)}
>
<Text style={styles.buttonText}>{text}</Text>
</TouchableHighlight>
);

render() {
return (
<View style={styles.container}>
<View style={styles.grid}>
<View style={styles.row}>
{this.renderButton('TL', 'button1')}
{this.renderButton('T', 'button2')}
{this.renderButton('TR', 'button3')}
</View>
<View style={styles.row}>
{this.renderButton('L', 'button4')}
{this.renderButton('C', 'button5')}
{this.renderButton('R', 'button6')}
</View>
<View style={styles.row}>
{this.renderButton('BL', 'button7')}
{this.renderButton('B', 'button8')}
{this.renderButton('BR', 'button9')}
</View>
</View>
<Popover
isVisible={this.state.isVisible}
fromRect={this.state.buttonRect}
displayArea={displayArea}
onClose={this.closePopover}>
<View style={styles.popoverContent}>
<Text style={styles.popoverText}>Content</Text>
</View>
</Popover>
</View>
);
}
}

AppRegistry.registerComponent('Example', () => PopoverExample);
12 changes: 12 additions & 0 deletions Example/__tests__/index.android.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'react-native';
import React from 'react';
import Index from '../index.android.js';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
const tree = renderer.create(
<Index />
);
});
12 changes: 12 additions & 0 deletions Example/__tests__/index.ios.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'react-native';
import React from 'react';
import Index from '../index.ios.js';

// Note: test renderer must be required after react-native.
import renderer from 'react-test-renderer';

it('renders correctly', () => {
const tree = renderer.create(
<Index />
);
});
66 changes: 66 additions & 0 deletions Example/android/app/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import re

# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#

lib_deps = []
for jarfile in glob(['libs/*.jar']):
name = 'jars__' + re.sub(r'^.*/([^/]+)\.jar$', r'\1', jarfile)
lib_deps.append(':' + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)

for aarfile in glob(['libs/*.aar']):
name = 'aars__' + re.sub(r'^.*/([^/]+)\.aar$', r'\1', aarfile)
lib_deps.append(':' + name)
android_prebuilt_aar(
name = name,
aar = aarfile,
)

android_library(
name = 'all-libs',
exported_deps = lib_deps
)

android_library(
name = 'app-code',
srcs = glob([
'src/main/java/**/*.java',
]),
deps = [
':all-libs',
':build_config',
':res',
],
)

android_build_config(
name = 'build_config',
package = 'com.example',
)

android_resource(
name = 'res',
res = 'src/main/res',
package = 'com.example',
)

android_binary(
name = 'app',
package_type = 'debug',
manifest = 'src/main/AndroidManifest.xml',
keystore = '//android/keystores:debug',
deps = [
':app-code',
],
)
Loading