reloadComponent()

in ui/src/main/frontend/js/editor.js [85:128]


      reloadComponent(ip, cb) {
        let path = ip;
        let component = document.querySelector(
          `.sling-cms-component[data-sling-cms-resource-path="${path}"]`
        );
        let forceReload = component && component.dataset.reload === "true";
        while (!component && path.length > 1) {
          const pathArr = path.split("/");
          pathArr.pop();
          path = pathArr.join("/");
          component = document.querySelector(
            `.sling-cms-component[data-sling-cms-resource-path="${path}"]`
          );
          if (component && component.dataset.reload === "true") {
            forceReload = true;
          }
        }
        if (!component || forceReload) {
          CMSEditor.ui.hideModal();
          window.top.location.reload();
        }
        fetch(
          `/cms/page/pagewrapper.html${path}?forceResourceType=${component.dataset.slingCmsResourceType}`,
          {
            redirect: "manual",
          }
        )
          .then((response) => {
            if (!response.ok) {
              CMSEditor.ui.hideModal();
              window.top.location.reload();
            }
            return response.text();
          })
          .then((html) => {
            const tmp = document.createElement("div");
            tmp.innerHTML = html;
            CMSEditor.util.attachEvents(tmp);
            component.replaceWith(tmp.querySelector(".sling-cms-component"));
            tmp.remove();
            CMSEditor.ui.hideModal();
            cb();
          });
      },