Adds support for Toast message (#188)

This commit is contained in:
Saket Kumar 2018-01-16 02:13:52 +05:30 committed by Guilherme Gazzo
parent ec1782e504
commit 885acf9575
10 changed files with 39 additions and 15 deletions

View File

@ -152,6 +152,7 @@ dependencies {
compile project(':react-native-vector-icons')
compile project(':react-native-fetch-blob')
compile project(':react-native-zeroconf')
compile project(':react-native-toast')
compile project(':realm')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"

View File

@ -15,6 +15,8 @@ import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage;
import com.brentvatne.react.ReactVideoPackage;
import com.remobile.toast.RCTToastPackage;
import java.util.Arrays;
import java.util.List;
import org.devio.rn.splashscreen.SplashScreenReactPackage;
@ -31,15 +33,16 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new SvgPackage(),
new ImagePickerPackage(),
new VectorIconsPackage(),
new RNFetchBlobPackage(),
new ZeroconfReactPackage(),
new RealmReactPackage(),
new ReactNativePushNotificationPackage(),
new ReactVideoPackage(),
new SplashScreenReactPackage()
new SvgPackage(),
new ImagePickerPackage(),
new VectorIconsPackage(),
new RNFetchBlobPackage(),
new ZeroconfReactPackage(),
new RealmReactPackage(),
new ReactNativePushNotificationPackage(),
new ReactVideoPackage(),
new SplashScreenReactPackage(),
new RCTToastPackage()
);
}
};

View File

@ -17,4 +17,6 @@ include ':realm'
project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android')
include ':react-native-push-notification'
project(':react-native-push-notification').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-push-notification/android')
include ':react-native-toast'
project(':react-native-toast').projectDir = new File(settingsDir, '../node_modules/@remobile/react-native-toast/android')
include ':app'

View File

@ -15,6 +15,7 @@ import {
setInput,
actionsHide
} from '../actions/messages';
import { showToast } from '../utils/info';
@connect(
state => ({
@ -127,7 +128,7 @@ export default class MessageActions extends React.Component {
if (this.state.copyPermalink) {
this.setState({ copyPermalink: false });
await Clipboard.setString(nextProps.permalink);
Alert.alert('Permalink copied to clipboard!');
showToast('Permalink copied to clipboard!');
this.props.permalinkClear();
// quote
} else if (this.state.quote) {
@ -235,7 +236,7 @@ export default class MessageActions extends React.Component {
handleCopy = async() => {
await Clipboard.setString(this.props.actionMessage.msg);
Alert.alert('Copied to clipboard!');
showToast('Copied to clipboard!');
}
handleStar() {

6
app/utils/info.js Normal file
View File

@ -0,0 +1,6 @@
import { Alert } from 'react-native';
import Toast from '@remobile/react-native-toast';
export const showToast = (message: string) => Toast.showLongCenter(message, Toast.SHORT);
export const showErrorAlert = (message: string, title: string) => Alert.alert(title, message, [{ text: 'OK', onPress: () => {} }], { cancelable: true });

View File

@ -1,13 +1,14 @@
import React from 'react';
import Spinner from 'react-native-loading-spinner-overlay';
import PropTypes from 'prop-types';
import { Text, TextInput, View, TouchableOpacity, Alert, SafeAreaView } from 'react-native';
import { Text, TextInput, View, TouchableOpacity, SafeAreaView } from 'react-native';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import * as loginActions from '../actions/login';
import KeyboardView from '../presentation/KeyboardView';
import styles from './Styles';
import { showErrorAlert } from '../utils/info';
class ForgotPasswordView extends React.Component {
static propTypes = {
@ -35,11 +36,11 @@ class ForgotPasswordView extends React.Component {
if (login.success) {
this.props.navigation.goBack();
setTimeout(() => {
Alert.alert(
'Alert',
showErrorAlert(
'If this email is registered, ' +
'we\'ll send instructions on how to reset your password. ' +
'If you do not receive an email shortly, please come back and try again.'
'If you do not receive an email shortly, please come back and try again.',
'Alert'
);
});
}

View File

@ -8,6 +8,7 @@ import * as loginActions from '../actions/login';
import KeyboardView from '../presentation/KeyboardView';
import styles from './Styles';
import { showToast } from '../utils/info';
class LoginView extends React.Component {
static propTypes = {
@ -34,6 +35,7 @@ class LoginView extends React.Component {
submit = () => {
const { username, password, code } = this.state;
if (username.trim() === '' || password.trim() === '') {
showToast('Email or password field is empty');
return;
}

View File

@ -10,6 +10,7 @@ import * as loginActions from '../actions/login';
import KeyboardView from '../presentation/KeyboardView';
import styles from './Styles';
import { showToast } from '../utils/info';
const placeholderTextColor = 'rgba(255,255,255,.2)';
@ -51,6 +52,7 @@ class RegisterView extends React.Component {
name, email, password, code
} = this.state;
if (!this._valid()) {
showToast('Some field is invalid or empty');
return;
}

5
package-lock.json generated
View File

@ -149,6 +149,11 @@
"resolved": "https://registry.npmjs.org/@hypnosphi/fuse.js/-/fuse.js-3.0.9.tgz",
"integrity": "sha1-6pn2EhtKjwZbTHH4VZXbJxRJiAc="
},
"@remobile/react-native-toast": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/@remobile/react-native-toast/-/react-native-toast-1.0.7.tgz",
"integrity": "sha512-iOD1PRnTSVr9sDWQdesIpfRrwJhHfeEQe5BpalQxC5OhM9thpiE6cu2NlW1KBWl0RJG4ZiJaF1xLlCo9YxU6dA=="
},
"@storybook/addon-storyshots": {
"version": "3.2.18",
"resolved": "https://registry.npmjs.org/@storybook/addon-storyshots/-/addon-storyshots-3.2.18.tgz",

View File

@ -21,6 +21,7 @@
]
},
"dependencies": {
"@remobile/react-native-toast": "^1.0.7",
"@storybook/addons": "^3.3.1",
"@storybook/react-native": "^3.2.18",
"babel-plugin-transform-decorators-legacy": "^1.3.4",