proton-native/docs/main.js
Gustav Hansen b5ca0f7f86
V2 (#230)
* Add initial test structure and some tests for Window

* Start on rewriting registerComponent

* Add View support

* Add flexbox support, still need to test more

* Add styling and better props management

* Add nested text support

* Fix text measurement and qt hogging layout styles

* Font size must be in px, so convert if it isn't

* Add stylesheet

* Various changes, start adding tests

* Try out travis CI

* Remove xwd package

* Install qt5

* Install correct moc

* Add g++ 5

* Add xwd and imagemagick

* Yoga layout doesn't support v12 right now

* Add touchablewithoutfeedback

* Add opacity. Need to investigate seg fault

* Fix build errors, unsupport trusty

* Force xenial version

* Add touchablehighlight. Start button

* Add support for image require

* Start on image

* Add image resizing and TextInput

* Fix button view

* Quit loop when all windows closed

* Fix require not working with jest

* Fix quit deleting still in use pointers

* Disable caching

* Depend on stable node-qt-napi

* Copy docs, start examples

* Many bug fixes, get cat example to work

* Fix percent issue and start more documentation

* Start docs

* Finish docs

* Fix App appendChild with comments

* Abstract QT bindings

* Add calculator example; try to get devtools working

* Update react-devtools

* Add hot reloading support

* Add hot reloading to examples, fix reloading bugs

* Update documentation on v2

* Add more examples to v2 changes

* Change readme for v2

* Remove packaging until it works

* Add prepack instead

* Use node-qt-napi up

* 2.0.1

* Convert everything to typescript

* Add note on TS

* Update readme with new images

* Add comparison to others in docs

* Add packaging instructions

* Fix windows packaging

* Create FUNDING.yml

* Update v2_changes.md

* Create LICENSE

* Add wx backend option

* Add more wx components

* Add wx backend notes

* Add note on mac wxwidgets libuv bug

* Add note on Macs with libuv bug

* Use npx by default

* Bump version for wx backend

* V2 small code improvements (#240)

* slightly improved import

* better type defs

* merged append and insert as they pretty same

* Run prettier

* Add issue templates (#241)

* About page typo (#216)

* Update quickstart.md (#223)

* Update README.md (#229)

* Create FUNDING.yml

* Add issue templates

* Update README.md

Co-authored-by: Yevhen Hraivoronskyi <evhenious@gmail.com>
2020-01-19 06:55:30 -08:00

115 lines
3.2 KiB
JavaScript

import React, { Component } from 'react';
import {
App,
Window,
Text,
TextInput,
View,
Picker,
Button,
Image,
} from '../../../../bin';
import * as Actions from '../actions';
import { sizeConsts, typeConsts } from '../consts';
import { connect } from 'react-redux/lib/alternate-renderers';
import { bindActionCreators } from 'redux';
class Main extends Component {
render() {
return (
<App>
<Window>
<View style={{ margin: 10, flex: 1 }}>
<View
style={{
flexDirection: 'row',
justifyContent: 'center',
marginBottom: 10,
}}
>
<Text style={{ fontSize: 45 }}>CatApi</Text>
</View>
<View style={{ flexDirection: 'row', marginBottom: 10 }}>
<Text style={{ marginRight: 15, fontSize: 20 }}>ID</Text>
<TextInput
onChangeText={id => this.props.setId(id)}
value={this.props.id}
style={{ flex: 1 }}
/>
</View>
<View style={{ flexDirection: 'row', marginBottom: 10 }}>
<Text style={{ marginRight: 15, fontSize: 20 }}>Size</Text>
<Picker
style={{ flex: 1 }}
selectedValue={this.props.size}
onValueChange={val => this.props.setSize(val)}
>
{sizeConsts.map((s, i) => (
<Picker.Item key={i} label={s} />
))}
</Picker>
</View>
<View style={{ flexDirection: 'row', marginBottom: 10 }}>
<Text style={{ marginRight: 15, fontSize: 20 }}>Type</Text>
<Picker
style={{ flex: 1 }}
selectedValue={this.props.type}
onValueChange={val => this.props.setType(val)}
>
{typeConsts.map((s, i) => (
<Picker.Item key={i} label={s} />
))}
</Picker>
</View>
<View
style={{
flexDirection: 'row',
justifyContent: 'center',
marginBottom: 10,
}}
>
<Button onPress={() => this.props.search()} title="Submit" />
</View>
<View
style={{
flexDirection: 'row',
marginBottom: 10,
}}
>
<Text style={{ marginRight: 15, fontSize: 20 }}>URL</Text>
<TextInput value={this.props.url} style={{ flex: 1 }} />
</View>
<View
style={{
marginBottom: 10,
flex: 1,
}}
>
<Image
source={{
uri: this.props.url,
}}
style={{ flex: 1 }}
/>
</View>
</View>
</Window>
</App>
);
}
}
function mapStateToProps(state, props) {
return {
url: state.url,
id: state.id,
size: state.size,
type: state.type,
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(Main);