1
0
Fork 0
mirror of synced 2024-07-02 21:20:58 +12:00
appwrite/public/scripts/views/ui/highlight.js
2019-09-13 13:47:07 +03:00

43 lines
1.1 KiB
JavaScript

(function(window) {
window.ls.container.get("view").add({
selector: "data-ui-highlight",
controller: function(element, expression, document) {
let check = function() {
let links = element.getElementsByTagName("a");
let selected = null;
let list = [];
for (let i = 0; i < links.length; i++) {
links[i].href =
links[i].href || expression.parse(links[i].dataset["lsHref"] || "");
list.push(links[i]);
}
list.sort(function(a, b) {
return a.pathname.length - b.pathname.length;
});
for (let i = 0; i < list.length; i++) {
if (
list[i].pathname ===
window.location.pathname.substring(0, list[i].pathname.length)
) {
list[i].classList.add("selected");
if (selected !== null) {
list[selected].classList.remove("selected");
}
selected = i;
} else {
list[i].classList.remove("selected");
}
}
};
document.addEventListener("state-changed", check);
check();
}
});
})(window);