next.js/test/e2e/app-dir/use-cache/app/(partially-static)/on-demand-revalidate/revalidate-buttons.tsx
revalidate-buttons.tsx33 lines727 B
'use client'

import { useTransition } from 'react'

export function RevalidateButtons({
  revalidatePath,
}: {
  revalidatePath: () => Promise<void>
}) {
  const [isPending, startTransition] = useTransition()

  return (
    <form>
      <button id="revalidate-path" formAction={revalidatePath}>
        revalidate with revalidatePath()
      </button>{' '}
      <button
        id="revalidate-api-route"
        disabled={isPending}
        formAction={async () => {
          startTransition(async () => {
            await fetch('/api/revalidate?path=/on-demand-revalidate', {
              method: 'POST',
            })
          })
        }}
      >
        revalidate with API route
      </button>
    </form>
  )
}
Quest for Codev2.0.0
/
SIGN IN