mirror of
https://github.com/QwIT-Development/firka-extension.git
synced 2026-06-12 03:41:39 +02:00
78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
const loadingScreen = {
|
|
show() {
|
|
document.body.classList.remove("loaded");
|
|
const existingLoadingScreen = document.querySelector(".loading-screen");
|
|
if (existingLoadingScreen) return;
|
|
|
|
const loadingScreen = document.createElement("div");
|
|
loadingScreen.className = "loading-screen";
|
|
|
|
const loadingContent = document.createElement('div');
|
|
loadingContent.className = 'loading-content';
|
|
|
|
const loadingLogo = document.createElement('img');
|
|
loadingLogo.src = chrome.runtime.getURL("images/loading.gif");
|
|
loadingLogo.alt = 'Firka';
|
|
loadingLogo.className = 'loading-logo';
|
|
|
|
const loadingText = document.createElement('div');
|
|
loadingText.className = 'loading-text';
|
|
loadingText.setAttribute('data-i18n', 'loading.text');
|
|
loadingText.textContent = 'Betöltés alatt...';
|
|
|
|
const loadingText2 = document.createElement('div');
|
|
loadingText2.className = 'loading-text2';
|
|
loadingText2.setAttribute('data-i18n', 'loading.subtext');
|
|
loadingText2.textContent = 'Kis türelmet!';
|
|
|
|
loadingContent.appendChild(loadingLogo);
|
|
loadingContent.appendChild(loadingText);
|
|
loadingContent.appendChild(loadingText2);
|
|
loadingScreen.appendChild(loadingContent);
|
|
document.body.appendChild(loadingScreen);
|
|
document.body.classList.add("loaded");
|
|
},
|
|
|
|
hide() {
|
|
document.body.classList.add("loaded");
|
|
const loadingScreen = document.querySelector(".loading-screen");
|
|
if (loadingScreen) {
|
|
loadingScreen.style.opacity = "0";
|
|
|
|
const removeLoadingScreen = () => {
|
|
if (loadingScreen && loadingScreen.parentNode) {
|
|
loadingScreen.remove();
|
|
}
|
|
};
|
|
|
|
loadingScreen.addEventListener("transitionend", removeLoadingScreen, {
|
|
once: true,
|
|
});
|
|
setTimeout(removeLoadingScreen, 500);
|
|
}
|
|
},
|
|
};
|
|
|
|
window.addEventListener("DOMContentLoaded", () => {
|
|
const manifest = chrome.runtime.getManifest();
|
|
const urls = [];
|
|
|
|
if (manifest.content_scripts) {
|
|
manifest.content_scripts.forEach((script) => {
|
|
if (script.matches) {
|
|
urls.push(...script.matches);
|
|
}
|
|
});
|
|
}
|
|
|
|
const currentUrl = location.href;
|
|
const shouldShowLoading = urls.some((urlPattern) => {
|
|
const regex = new RegExp(urlPattern.replace(/\*/g, '.*'));
|
|
return regex.test(currentUrl);
|
|
});
|
|
|
|
if (shouldShowLoading) {
|
|
loadingScreen.show();
|
|
}
|
|
});
|