UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

32 lines (26 loc) 1.04 kB
import {subcribeToVercelProtectionBypass} from '@sanity/preview-url-secret/toggle-vercel-protection-bypass' import {useEffect, useReducer, useState} from 'react' import {useClient} from 'sanity' import {API_VERSION} from './constants' type VercelProtectionBypassReadyState = 'loading' | 'ready' export function useVercelBypassSecret(): [ vercelProtectionBypassSecret: string | null, vercelProtectionBypassReadyState: VercelProtectionBypassReadyState, ] { const client = useClient({apiVersion: API_VERSION}) const [vercelProtectionBypassReadyState, ready] = useReducer( () => 'ready' as 'ready' | 'loading', 'loading', ) const [vercelProtectionBypassSecret, setVercelProtectionBypassSecret] = useState<string | null>( null, ) useEffect(() => { const unsubscribe = subcribeToVercelProtectionBypass(client, (secret) => { setVercelProtectionBypassSecret(secret) ready() }) return () => unsubscribe() }, [client]) return [vercelProtectionBypassSecret, vercelProtectionBypassReadyState] }