@sanity/visual-editing
Version:
[](https://npm-stat.com/charts.html?package=@sanity/visual-editing) [](https://
1 lines • 6.5 kB
Source Map (JSON)
{"version":3,"file":"VisualEditingComponent3.cjs","sources":["../../src/remix/VisualEditingComponent.tsx"],"sourcesContent":["import {useLocation, useNavigate, useRevalidator} from '@remix-run/react'\nimport {useEffect, useRef, useState} from 'react'\nimport {type HistoryAdapterNavigate, type HistoryRefresh, type VisualEditingOptions} from '../types'\nimport {enableVisualEditing} from '../ui/enableVisualEditing'\n\n/**\n * @public\n */\nexport interface VisualEditingProps extends Omit<VisualEditingOptions, 'history' | 'refresh'> {\n /**\n * @deprecated The history adapter is already implemented\n */\n history?: never\n /**\n * The refresh API allows smarter refresh logic than the default `location.reload()` behavior.\n * You can call the refreshDefault argument to trigger the default refresh behavior so you don't have to reimplement it.\n */\n refresh?: (\n payload: HistoryRefresh,\n refreshDefault: () => false | Promise<void>,\n ) => false | Promise<void>\n}\n\nexport default function VisualEditingComponent(props: VisualEditingProps): null {\n const {components, refresh, zIndex} = props\n\n const navigateRemix = useNavigate()\n const navigateRemixRef = useRef(navigateRemix)\n const [navigate, setNavigate] = useState<HistoryAdapterNavigate | undefined>()\n const revalidator = useRevalidator()\n const [revalidatorPromise, setRevalidatorPromise] = useState<(() => void) | null>(null)\n const [revalidatorLoading, setRevalidatorLoading] = useState(false)\n\n useEffect(() => {\n navigateRemixRef.current = navigateRemix\n }, [navigateRemix])\n useEffect(() => {\n if (revalidatorPromise && revalidator.state === 'loading') {\n setRevalidatorLoading(true)\n } else if (revalidatorPromise && revalidatorLoading && revalidator.state === 'idle') {\n revalidatorPromise()\n setRevalidatorPromise(null)\n setRevalidatorLoading(false)\n }\n }, [revalidatorLoading, revalidator.state, revalidatorPromise])\n useEffect(() => {\n const disable = enableVisualEditing({\n components,\n zIndex,\n refresh: (payload) => {\n function refreshDefault() {\n if (payload.source === 'mutation' && payload.livePreviewEnabled) {\n return false\n }\n return new Promise<void>((resolve) => {\n revalidator.revalidate()\n setRevalidatorPromise(() => resolve)\n })\n }\n return refresh ? refresh(payload, refreshDefault) : refreshDefault()\n },\n history: {\n subscribe: (_navigate) => {\n setNavigate(() => _navigate)\n return () => setNavigate(undefined)\n },\n update: (update) => {\n if (update.type === 'push' || update.type === 'replace') {\n navigateRemixRef.current(update.url, {\n replace: update.type === 'replace',\n })\n } else if (update.type === 'pop') {\n navigateRemixRef.current(-1)\n }\n },\n },\n })\n return () => disable()\n }, [components, refresh, revalidator, zIndex])\n\n const location = useLocation()\n useEffect(() => {\n if (navigate) {\n navigate({\n type: 'push',\n url: `${location.pathname}${location.search}${location.hash}`,\n })\n }\n }, [location.hash, location.pathname, location.search, navigate])\n\n return null\n}\n"],"names":["VisualEditingComponent","props","$","_c","components","refresh","zIndex","navigateRemix","useNavigate","navigateRemixRef","useRef","navigate","setNavigate","useState","revalidator","useRevalidator","revalidatorPromise","setRevalidatorPromise","revalidatorLoading","setRevalidatorLoading","t0","t1","current","useEffect","t2","t3","state","t4","t5","disable","enableVisualEditing","payload","refreshDefault","source","livePreviewEnabled","Promise","resolve","revalidate","history","subscribe","_navigate","undefined","update","type","url","replace","location","useLocation","t6","t7","hash","pathname","search"],"mappings":"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"}