-
Notifications
You must be signed in to change notification settings - Fork 44
/
hide_blog_carousels.js
38 lines (30 loc) 路 1.21 KB
/
hide_blog_carousels.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
import { keyToCss } from '../../util/css_map.js';
import { addStyle, removeStyle } from '../../util/interface.js';
import { onNewPosts } from '../../util/mutations.js';
const excludeClass = 'xkit-no-recommended-blog-carousels-done';
const hiddenClass = 'xkit-no-recommended-blog-carousels-hidden';
const css = `.${hiddenClass} > div { display: none; }`;
let blogCarouselSelector;
const hideBlogCarousels = async function () {
[...document.querySelectorAll('[data-id] + :not([data-id]) + :not([data-id])')]
.filter(timelineObject => {
timelineObject.classList.add(excludeClass);
return timelineObject.querySelector(blogCarouselSelector) !== null;
})
.forEach(timelineObject => {
timelineObject.classList.add(hiddenClass);
timelineObject.previousElementSibling.classList.add(hiddenClass);
});
};
export const main = async function () {
blogCarouselSelector = await keyToCss('blogCarousel');
addStyle(css);
onNewPosts.addListener(hideBlogCarousels);
hideBlogCarousels();
};
export const clean = async function () {
removeStyle(css);
onNewPosts.removeListener(hideBlogCarousels);
$(`.${excludeClass}`).removeClass(excludeClass);
$(`.${hiddenClass}`).removeClass(hiddenClass);
};