a356d2f68c
* Add Apollo Server and Client Auth Example * Some updates * Updated docs Co-authored-by: Luis Alvarez D. <luis@zeit.co>
46 lines
888 B
JavaScript
46 lines
888 B
JavaScript
import { withApollo } from '../apollo/client'
|
|
import gql from 'graphql-tag'
|
|
import Link from 'next/link'
|
|
import { useQuery } from '@apollo/react-hooks'
|
|
import { useRouter } from 'next/router'
|
|
|
|
const ViewerQuery = gql`
|
|
query ViewerQuery {
|
|
viewer {
|
|
id
|
|
email
|
|
}
|
|
}
|
|
`
|
|
|
|
const Index = () => {
|
|
const router = useRouter()
|
|
const { data, loading } = useQuery(ViewerQuery)
|
|
|
|
if (
|
|
loading === false &&
|
|
data.viewer === null &&
|
|
typeof window !== 'undefined'
|
|
) {
|
|
router.push('/signin')
|
|
}
|
|
|
|
if (data && data.viewer) {
|
|
return (
|
|
<div>
|
|
You're signed in as {data.viewer.email} goto{' '}
|
|
<Link href="/about">
|
|
<a>static</a>
|
|
</Link>{' '}
|
|
page. or{' '}
|
|
<Link href="/signout">
|
|
<a>signout</a>
|
|
</Link>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
return <p>Loading...</p>
|
|
}
|
|
|
|
export default withApollo(Index)
|