next.js/test/e2e/app-dir/shallow-routing/app/(shallow)/pushstate-data/page.tsx
page.tsx35 lines821 B
'use client'
import { useEffect, useState } from 'react'

export default function Page() {
  const [data, setData] = useState(null)
  const [updated, setUpdated] = useState(false)
  useEffect(() => {
    setData(window.history.state.myData)
  }, [])
  return (
    <>
      <h1 id="pushstate-data">PushState Data</h1>
      {updated ? <div id="state-updated"></div> : null}
      <pre id="my-data">{JSON.stringify(data)}</pre>
      <button
        onClick={() => {
          setData(window.history.state.myData)
        }}
        id="get-latest"
      >
        Get latest data
      </button>
      <button
        onClick={() => {
          window.history.pushState({ myData: { foo: 'bar' } }, '')
          setUpdated(true)
        }}
        id="push-state"
      >
        Push state
      </button>
    </>
  )
}
Quest for Codev2.0.0
/
SIGN IN