-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontent.js
56 lines (46 loc) · 1.52 KB
/
content.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// content.js
(function () {
let sidebarSelector = 'div.flex-shrink-0.overflow-x-hidden.bg-token-sidebar-surface-primary';
/** @type HTMLDivElement */
let sidebar = null;
/** @type MutationObserver */
let bodyObserver = null;
/** @type MutationObserver */
let sidebarObserver = null;
/** Adapts sidebar width */
const applyCustomStyles = () => {
if (sidebar?.style.width == '260px') {
sidebar.style.width = '400px';
/** @type HTMLDivElement */
const chatHistory = sidebar.firstChild;
chatHistory.classList.remove('w-[260px]');
}
}
/** Observe for body changes */
const observeBody = () => {
bodyObserver?.disconnect();
applyCustomStyles();
bodyObserver = new MutationObserver(observeSidebar);
bodyObserver.observe(document.body, {
childList: true
});
}
/** Observe for sidebar changes */
const observeSidebar = () => {
sidebarObserver?.disconnect();
sidebar = document.querySelector(sidebarSelector);
applyCustomStyles();
sidebarObserver = new MutationObserver(applyCustomStyles);
sidebarObserver.observe(sidebar, {
attributes: true,
attributeFilter: ['style'],
});
}
/** Initialize */
document.addEventListener('readystatechange', () => {
sidebar = document.querySelector(sidebarSelector);
applyCustomStyles();
observeBody();
observeSidebar();
});
})();