-
Notifications
You must be signed in to change notification settings - Fork 0
/
carousel.js
38 lines (32 loc) · 1.05 KB
/
carousel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function exitCarousel() {
Object.assign(carousel.style, {
animationName: "exitCarousel",
animationDuration: "300ms",
bottom: "-265px",
});
}
function enterCarousel() {
Object.assign(carousel.style, {
animationName: "enterCarousel",
animationDuration: "200ms",
bottom: "0px",
});
}
function toggleCarousel() {
if (carousel.style.animationName === "enterCarousel") exitCarousel();
else enterCarousel();
}
async function insertCarousel() {
const response = await fetch(carouselUrl);
const text = await response.text();
const clean = DOMPurify.sanitize(text, { SAFE_FOR_JQUERY: true, ADD_TAGS: ["iframe"] });
$(clean).appendTo("body:first");
$("#fanlights").attr("src", videoTabUrl);
$("#videoTab").on("click", toggleCarousel);
$("#carouselFrame").attr("src", carouselFrameUrl);
carousel = document.getElementById("carousel");
chrome.runtime.onMessage.addListener(({ greeting, errorMessage }) => {
if (greeting === "enterCarousel") return enterCarousel();
if (greeting === "logError") console.error("[fanlights.io]", errorMessage);
});
}