From f439fdb8aa3e7867436d64d40121e4781c458f01 Mon Sep 17 00:00:00 2001 From: Linden Darling Date: Sun, 16 Apr 2017 13:33:46 +0900 Subject: [PATCH] Added copy-to-clipboard feature for token, productivity++ --- Examples/simple-fcm-client/app/App.js | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/Examples/simple-fcm-client/app/App.js b/Examples/simple-fcm-client/app/App.js index b3066bb..536cf13 100644 --- a/Examples/simple-fcm-client/app/App.js +++ b/Examples/simple-fcm-client/app/App.js @@ -9,7 +9,8 @@ import { StyleSheet, Text, TouchableOpacity, - View + View, + Clipboard } from 'react-native'; import PushController from "./PushController"; @@ -20,12 +21,13 @@ export default class App extends Component { super(props); this.state = { - token: "" + token: "", + tokenCopyFeedback: "" } } render() { - let { token } = this.state; + let { token, tokenCopyFeedback } = this.state; return ( @@ -36,10 +38,14 @@ export default class App extends Component { Welcome to Simple Fcm Client! - + this.setClipboardContent(this.state.token)} style={styles.instructions}> Token: {this.state.token} + + {this.state.tokenCopyFeedback} + + firebaseClient.sendNotification(token)} style={styles.button}> Send Notification @@ -54,6 +60,16 @@ export default class App extends Component { ); } + + setClipboardContent(text) { + Clipboard.setString(text); + this.setState({tokenCopyFeedback: "Token copied to clipboard."}); + setTimeout(() => {this.clearTokenCopyFeedback()}, 2000); + } + + clearTokenCopyFeedback() { + this.setState({tokenCopyFeedback: ""}); + } } const styles = StyleSheet.create({ @@ -71,7 +87,12 @@ const styles = StyleSheet.create({ instructions: { textAlign: 'center', color: '#333333', - marginBottom: 5, + marginBottom: 2, + }, + feedback: { + textAlign: 'center', + color: '#996633', + marginBottom: 3, }, button: { backgroundColor: "teal", -- 2.26.2