-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopup.js
More file actions
74 lines (65 loc) · 2.51 KB
/
popup.js
File metadata and controls
74 lines (65 loc) · 2.51 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
document.addEventListener('DOMContentLoaded', function() {
const toggleExtension = document.getElementById('toggleExtension');
const customCss = document.getElementById('customCss');
const applyBtn = document.getElementById('applyBtn');
const optionsDiv = document.querySelector('.options');
const defaultCustomCss = `/* Change color of draft PR titles to gray */
div:has(> span[aria-label="Draft Pull Request"]) + div .markdown-title {
color: gray!important;
}
/* Change primary button color to white */
.Button--primary {
background-color: white;
color: black;
}`;
// Load saved settings
chrome.storage.sync.get(['extensionEnabled', 'selectedTheme', 'customCssValue'], function(data) {
toggleExtension.checked = data.extensionEnabled !== false;
customCss.value = data.customCssValue || defaultCustomCss;
optionsDiv.style.opacity = toggleExtension.checked ? 1 : 0.6;
});
// Toggle extension state
toggleExtension.addEventListener('change', function() {
const isEnabled = toggleExtension.checked;
chrome.storage.sync.set({extensionEnabled: isEnabled});
optionsDiv.style.opacity = isEnabled ? 1 : 0.6;
// Send message to content script
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
action: "toggleExtension",
value: isEnabled
});
});
});
// Apply styles
applyBtn.addEventListener('click', function() {
const cssValue = customCss.value;
const theme = 'custom';
// Save settings
chrome.storage.sync.set({
customCssValue: cssValue
});
// Send message to content script
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
action: "applyStyle",
theme: theme,
customCss: cssValue
});
});
// Show confirmation
applyBtn.textContent = 'Styles Applied!';
setTimeout(() => {
applyBtn.textContent = 'Apply Styles to GitHub';
}, 1500);
});
// Update theme previews
function updateThemePreviews(selectedTheme) {
themePreviews.forEach(preview => {
preview.classList.remove('active');
if (preview.getAttribute('data-theme') === selectedTheme) {
preview.classList.add('active');
}
});
}
});