App.js 1.75 KB
Newer Older
renato's avatar
renato committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  StyleSheet,
  Text,
  TouchableOpacity,
  View
} from 'react-native';

import PushController from "./PushController";
import firebaseClient from  "./FirebaseClient";

export default class App extends Component {
19 20 21 22 23 24 25 26
  constructor(props) {
    super(props);

    this.state = {
      token: ""
    }
  }

renato's avatar
renato committed
27
  render() {
28 29
    let { token } = this.state;

renato's avatar
renato committed
30 31
    return (
      <View style={styles.container}>
32 33 34
        <PushController
          onChangeToken={token => this.setState({token: token || ""})}
        />
renato's avatar
renato committed
35 36 37 38
        <Text style={styles.welcome}>
          Welcome to Simple Fcm Client!
        </Text>

39 40 41 42 43
        <Text style={styles.instructions}>
          Token: {this.state.token}
        </Text>

        <TouchableOpacity onPress={() => firebaseClient.sendNotification(token)} style={styles.button}>
renato's avatar
renato committed
44 45 46
          <Text style={styles.buttonText}>Send Notification</Text>
        </TouchableOpacity>

47
        <TouchableOpacity onPress={() => firebaseClient.sendData(token)} style={styles.button}>
renato's avatar
renato committed
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
          <Text style={styles.buttonText}>Send Data</Text>
        </TouchableOpacity>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
  button: {
    backgroundColor: "teal",
    paddingHorizontal: 20,
    paddingVertical: 10,
    marginVertical: 5,
    borderRadius: 10
  },
  buttonText: {
    color: "white",
    backgroundColor: "transparent"
  },
});