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,
};