import { useEffect, useState } from 'react'
import { useUser } from '@auth0/nextjs-auth0/client'
import Layout from '../../components/layout'

const ApiProfile = () => {
  const { user, isLoading } = useUser()

  const [data, setData] = useState(null)

  useEffect(() => {
    ;(async () => {
      const res = await fetch('/api/protected-api')

      const data = await res.json()

      setData(data)
    })()
  }, [])

  return (
    <Layout user={user} loading={isLoading}>
      <h1>Profile</h1>

      <div>
        <h3>Public page (client rendered)</h3>
        <p>We are fetching data on the client-side :</p>
        <p>By making request to '/api/protected-api' serverless function</p>
        <p>so without a valid session cookie will fail</p>
        <p>{JSON.stringify(data)}</p>
      </div>
    </Layout>
  )
}

// Public route.(CSR) also accessing API from the client-side.
// data is not cached when redirecting between pages.
export default ApiProfile
