lbry.tech/app/dist/scripts/api.js

69 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-01-17 14:41:26 -06:00
"use strict"; /* global document, Jets */
2018-08-01 17:18:39 -05:00
2018-10-01 17:11:20 -05:00
// Initiate search functionality
2018-08-01 17:18:39 -05:00
let jets = new Jets({
contentTag: "#toc",
searchTag: "#input-search"
2018-08-01 17:18:39 -05:00
});
2018-10-01 17:11:20 -05:00
// Reset search on page load
document.getElementById("input-search").value = "";
2018-08-01 17:18:39 -05:00
2018-10-01 17:11:20 -05:00
// Activate search
document.getElementById("input-search").addEventListener("keyup", () => {
if (document.getElementById("input-search").value)
2019-01-30 16:15:10 -06:00
document.querySelector(".api-toc__search-clear").classList.add("active");
2018-10-01 17:11:20 -05:00
else
2019-01-30 16:15:10 -06:00
document.querySelector(".api-toc__search-clear").classList.remove("active");
2018-08-01 17:18:39 -05:00
});
2018-10-01 17:11:20 -05:00
// Cancel search
2019-01-30 16:15:10 -06:00
document.querySelector(".api-toc__search-clear").addEventListener("click", () => {
2018-10-01 17:11:20 -05:00
document.getElementById("input-search").value = "";
2019-01-30 16:15:10 -06:00
document.querySelector(".api-toc__search-clear").classList.remove("active");
2018-08-01 17:18:39 -05:00
jets.destroy();
reinitJets();
});
2019-01-30 16:15:10 -06:00
// Code toggles
handleApiLanguageToggles("curl");
handleApiLanguageToggles("lbrynet");
handleApiLanguageToggles("python");
// H E L P E R S
function handleApiLanguageToggles(language) {
document.getElementById(`toggle-${language}`).addEventListener("click", () => {
const codeExamples = document.querySelectorAll(`[data-api-example-type="${language}"]`);
const examples = document.querySelectorAll("[data-api-example-type]");
const toggles = document.querySelectorAll("*[id^='toggle-']");
for (const example of examples)
example.classList.remove("active");
for (const example of codeExamples)
example.classList.add("active");
for (const toggle of toggles)
toggle.classList.remove("active");
document.getElementById(`toggle-${language}`).classList.add("active");
});
}
2018-08-01 17:18:39 -05:00
function reinitJets() {
jets = new Jets({
contentTag: "#toc",
searchTag: "#input-search"
2018-08-01 17:18:39 -05:00
});
2018-10-01 17:11:20 -05:00
document.getElementById("input-search").focus();
2018-08-01 17:18:39 -05:00
}