@sanity/visual-editing
Version:
[](https://npm-stat.com/charts.html?package=@sanity/visual-editing) [](https://
1 lines • 6.24 kB
Source Map (JSON)
{"version":3,"file":"VisualEditingComponent.cjs","sources":["../../src/next-pages-router/VisualEditingComponent.tsx"],"sourcesContent":["import {useRouter} from 'next/router.js'\nimport {useEffect, useState} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\nimport type {\n HistoryAdapterNavigate,\n HistoryRefresh,\n HistoryUpdate,\n VisualEditingOptions,\n} from '../types'\nimport {enableVisualEditing} from '../ui/enableVisualEditing'\n\n/**\n * @public\n */\nexport interface VisualEditingProps extends Omit<VisualEditingOptions, 'history'> {\n /**\n * @deprecated The history adapter is already implemented\n */\n history?: never\n}\n\nexport default function VisualEditingComponent(props: VisualEditingProps): null {\n const {components, refresh: refreshProp, zIndex} = props\n\n const router = useRouter()\n const [navigate, setNavigate] = useState<HistoryAdapterNavigate | undefined>()\n\n const refresh = useEffectEvent((payload: HistoryRefresh): false | Promise<void> => {\n if (refreshProp) {\n return refreshProp(payload)\n }\n async function routerRefresh() {\n // Using the pattern used in the next.js codebase: https://github.com/vercel/next.js/blob/ac2b8ebfb2068661e91ae0fce5039a2e528eb25e/test/integration/prerender-preview/pages/index.js#L31\n await router.replace(router.asPath, undefined, {scroll: false, shallow: false})\n }\n const skipRefresh = (): false => {\n // eslint-disable-next-line no-console\n console.debug(\n 'Live preview is setup, mutation is skipped assuming its handled by the live preview',\n )\n return false\n }\n const mutationRefresh = () => {\n // eslint-disable-next-line no-console\n console.debug('No loaders in live mode detected, reloading server props')\n return routerRefresh()\n }\n\n switch (payload.source) {\n case 'manual':\n return routerRefresh()\n case 'mutation':\n return payload.livePreviewEnabled ? skipRefresh() : mutationRefresh()\n default:\n throw new Error('Unknown refresh source', {cause: payload})\n }\n })\n const update = useEffectEvent((event: HistoryUpdate) => {\n switch (event.type) {\n case 'push':\n return router.push(event.url)\n case 'pop':\n return router.back()\n case 'replace':\n return router.replace(event.url)\n default:\n throw new Error(`Unknown event type: ${event.type}`)\n }\n })\n useEffect(() => {\n const disable = enableVisualEditing({\n components,\n zIndex,\n refresh,\n history: {\n subscribe: (_navigate) => {\n setNavigate(() => _navigate)\n return () => setNavigate(undefined)\n },\n update,\n },\n })\n return () => disable()\n }, [components, zIndex])\n\n const {asPath, basePath, locale, isReady} = useRouter()\n useEffect(() => {\n if (navigate && isReady) {\n const url =\n basePath || locale\n ? `${basePath}${locale ? `/${locale}` : ''}${asPath === '/' ? '' : asPath}`\n : asPath\n navigate({type: 'push', url})\n }\n }, [asPath, basePath, isReady, locale, navigate])\n\n return null\n}\n"],"names":["VisualEditingComponent","props","$","_c","components","refresh","refreshProp","zIndex","router","useRouter","navigate","setNavigate","useState","t0","payload","routerRefresh","replace","asPath","undefined","scroll","shallow","skipRefresh","_temp","mutationRefresh","console","debug","source","livePreviewEnabled","Error","cause","useEffectEvent","t1","event","type","push","url","back","update","t2","disable","enableVisualEditing","history","subscribe","_navigate","t3","useEffect","basePath","locale","isReady","t4","t5"],"mappings":"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"}