mirror of
https://github.com/ae-utbm/sith.git
synced 2026-05-13 20:48:06 +00:00
Merge pull request #1376 from ae-utbm/fix-link-once
Fix crashes on *-once elements when called at bad timings
This commit is contained in:
@@ -84,7 +84,11 @@ const refreshElement = <
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
element.refresh();
|
// This might be called at some bad timing
|
||||||
|
// This prevents crashes of the observer
|
||||||
|
if (element.refresh) {
|
||||||
|
element.refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -130,7 +134,7 @@ startObserver(observer);
|
|||||||
export class LinkOnce extends elementOnce("link") {
|
export class LinkOnce extends elementOnce("link") {
|
||||||
getElementQuerySelector(): string {
|
getElementQuerySelector(): string {
|
||||||
// We get href from node.attributes instead of node.href to avoid getting the domain part
|
// We get href from node.attributes instead of node.href to avoid getting the domain part
|
||||||
return `link[href='${this.node.attributes.getNamedItem("href").nodeValue}']`;
|
return `link[href='${this.node.attributes.getNamedItem("href")?.nodeValue}']`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +146,6 @@ export class LinkOnce extends elementOnce("link") {
|
|||||||
export class ScriptOnce extends inheritHtmlElement("script") {
|
export class ScriptOnce extends inheritHtmlElement("script") {
|
||||||
getElementQuerySelector(): string {
|
getElementQuerySelector(): string {
|
||||||
// We get href from node.attributes instead of node.src to avoid getting the domain part
|
// We get href from node.attributes instead of node.src to avoid getting the domain part
|
||||||
return `script[src='${this.node.attributes.getNamedItem("src").nodeValue}']`;
|
return `script[src='${this.node.attributes.getNamedItem("src")?.nodeValue}']`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<script-once type="module" src="{{ js }}"></script-once>
|
<script-once type="module" src="{{ js }}"></script-once>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% for css in statics.css %}
|
{% for css in statics.css %}
|
||||||
<link-once rel="stylesheet" type="text/css" href="{{ css }}" defer></link-once>
|
<link-once rel="stylesheet" type="text/css" href="{{ css }}"></link-once>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<{{ component }} name="{{ widget.name }}" {% include "django/forms/widgets/attrs.html" %}>
|
<{{ component }} name="{{ widget.name }}" {% include "django/forms/widgets/attrs.html" %}>
|
||||||
|
|||||||
Reference in New Issue
Block a user