App.js 1.96 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
          <Text style={styles.buttonText}>Send Data</Text>
        </TouchableOpacity>
renato's avatar
renato committed
50 51 52 53

        <TouchableOpacity onPress={() => firebaseClient.sendNotificationWithData(token)} style={styles.button}>
          <Text style={styles.buttonText}>Send Notification With Data</Text>
        </TouchableOpacity>
renato's avatar
renato committed
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
      </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,
renato's avatar
renato committed
80
    marginVertical: 15,
renato's avatar
renato committed
81 82 83 84 85 86 87
    borderRadius: 10
  },
  buttonText: {
    color: "white",
    backgroundColor: "transparent"
  },
});