@sanity/visual-editing
Version: 
[](https://npm-stat.com/charts.html?package=@sanity/visual-editing) [](https://
82 lines (81 loc) • 3.29 kB
JavaScript
;
var reactCompilerRuntime = require("react-compiler-runtime"), router_js = require("next/router.js"), react = require("react"), useEffectEvent = require("use-effect-event"), enableVisualEditing = require("./enableVisualEditing.cjs");
function VisualEditingComponent(props) {
  const $ = reactCompilerRuntime.c(20), {
    components,
    refresh: refreshProp,
    zIndex
  } = props, router = router_js.useRouter(), [navigate, setNavigate] = react.useState();
  let t0;
  $[0] !== refreshProp || $[1] !== router ? (t0 = (payload) => {
    if (refreshProp)
      return refreshProp(payload);
    const routerRefresh = async function() {
      await router.replace(router.asPath, void 0, {
        scroll: !1,
        shallow: !1
      });
    }, skipRefresh = _temp, mutationRefresh = () => (console.debug("No loaders in live mode detected, reloading server props"), routerRefresh());
    switch (payload.source) {
      case "manual":
        return routerRefresh();
      case "mutation":
        return payload.livePreviewEnabled ? skipRefresh() : mutationRefresh();
      default:
        throw new Error("Unknown refresh source", {
          cause: payload
        });
    }
  }, $[0] = refreshProp, $[1] = router, $[2] = t0) : t0 = $[2];
  const refresh = useEffectEvent.useEffectEvent(t0);
  let t1;
  $[3] !== router ? (t1 = (event) => {
    switch (event.type) {
      case "push":
        return router.push(event.url);
      case "pop":
        return router.back();
      case "replace":
        return router.replace(event.url);
      default:
        throw new Error(`Unknown event type: ${event.type}`);
    }
  }, $[3] = router, $[4] = t1) : t1 = $[4];
  const update = useEffectEvent.useEffectEvent(t1);
  let t2;
  $[5] !== components || $[6] !== refresh || $[7] !== update || $[8] !== zIndex ? (t2 = () => {
    const disable = enableVisualEditing.enableVisualEditing({
      components,
      zIndex,
      refresh,
      history: {
        subscribe: (_navigate) => (setNavigate(() => _navigate), () => setNavigate(void 0)),
        update
      }
    });
    return () => disable();
  }, $[5] = components, $[6] = refresh, $[7] = update, $[8] = zIndex, $[9] = t2) : t2 = $[9];
  let t3;
  $[10] !== components || $[11] !== zIndex ? (t3 = [components, zIndex], $[10] = components, $[11] = zIndex, $[12] = t3) : t3 = $[12], react.useEffect(t2, t3);
  const {
    asPath,
    basePath,
    locale,
    isReady
  } = router_js.useRouter();
  let t4, t5;
  return $[13] !== asPath || $[14] !== basePath || $[15] !== isReady || $[16] !== locale || $[17] !== navigate ? (t4 = () => {
    if (navigate && isReady) {
      const url = basePath || locale ? `${basePath}${locale ? `/${locale}` : ""}${asPath === "/" ? "" : asPath}` : asPath;
      navigate({
        type: "push",
        url
      });
    }
  }, t5 = [asPath, basePath, isReady, locale, navigate], $[13] = asPath, $[14] = basePath, $[15] = isReady, $[16] = locale, $[17] = navigate, $[18] = t4, $[19] = t5) : (t4 = $[18], t5 = $[19]), react.useEffect(t4, t5), null;
}
function _temp() {
  return console.debug("Live preview is setup, mutation is skipped assuming its handled by the live preview"), !1;
}
exports.default = VisualEditingComponent;
//# sourceMappingURL=VisualEditingComponent.cjs.map