app/assets/lookbook/js/app.js in lookbook-1.5.5 vs app/assets/lookbook/js/app.js in lookbook-2.0.0.beta.0

- old
+ new

@@ -19,11 +19,11 @@ return this._requestsInProgress > 0; }, init() { if (window.SOCKET_PATH) { - console.log("SOCKET CREATED"); + this.debug(`Lookbook socket created`); const socket = createSocket(window.SOCKET_PATH); socket.addListener("Lookbook::ReloadChannel", () => this.updateDOM()); } }, @@ -41,13 +41,23 @@ this.$dispatch("navigation:complete"); }, hijax(evt) { const link = evt.target.closest("a[href]"); - if (link && !isExternalLink(link)) { - evt.preventDefault(); - this.navigateTo(link.href); + if (link) { + const external = isExternalLink(link); + const embedded = this.isEmbedded(); + + if (embedded && (!link.hasAttribute("target") || external)) { + evt.preventDefault(); + window.top.location = link.href; + return; + } else if (!embedded && !external && !link.hasAttribute("target")) { + evt.preventDefault(); + this.navigateTo(link.href); + return; + } } }, async updateDOM() { this.debug("Starting DOM update"); @@ -84,9 +94,17 @@ }, requestEnd() { if (this._requestsInProgress > 0) { this._requestsInProgress -= 1; + } + }, + + isEmbedded() { + try { + return window.self !== window.top; + } catch (e) { + return true; } }, ...Alpine.$log, };