Skip to content

Instantly share code, notes, and snippets.

@gHashTag
Created February 7, 2019 12:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gHashTag/4bbdba5bed80fac2d2a99f6d785f844a to your computer and use it in GitHub Desktop.
Save gHashTag/4bbdba5bed80fac2d2a99f6d785f844a to your computer and use it in GitHub Desktop.
import React from 'react'
import { AsyncStorage } from 'react-native'
import { Query } from 'react-apollo'
import gql from 'graphql-tag'
import { TOKEN_KEY } from '../constants'
import { Spinner } from '../components'
const REFRESH_TOKEN_QUERY = gql`
query($token: String!) {
update_token(token: $token) {
token
}
}
`
const Check = ({ token, navigate }) => (
<Query query={REFRESH_TOKEN_QUERY} variables={{ token }}>
{({ loading, error, data }) => {
if (loading) return <Spinner fullscreen />
if (error) return `Error!: ${error}`
AsyncStorage.setItem(TOKEN_KEY, data.update_token.token)
navigate('CHAT')
return null
}}
</Query>
)
class CheckToken extends React.Component {
state = {
token: ''
}
componentDidMount = async () => {
const token = await AsyncStorage.getItem(TOKEN_KEY)
if (!token) {
this.props.navigation.navigate('REG')
} else {
this.setState({ token })
}
}
render() {
const {
state: { token },
props: {
navigation: { navigate }
}
} = this
return <Check token={token} navigate={navigate} />
}
}
export default CheckToken
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment