Skip to content

Commit 628c7fb

Browse files
committed
Fix toggle
1 parent 0b04d61 commit 628c7fb

1 file changed

Lines changed: 35 additions & 26 deletions

File tree

user.js/[SteamHunters] Achievements tweaks.user.js

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// @license GPL-3.0 License
88
// @tag kevingrillet
99
// @tag steamhunters.com
10-
// @version 1.0.1
10+
// @version 1.0.2
1111

1212
// @homepageURL https://github.com/kevingrillet/Userscripts/
1313
// @supportURL https://github.com/kevingrillet/Userscripts/issues
@@ -23,38 +23,47 @@
2323
(function () {
2424
'use strict';
2525

26+
let isFiltered = false;
27+
28+
function toggleVisibility() {
29+
isFiltered = !isFiltered;
30+
const button = document.getElementById('toggle-visibility-btn');
31+
const icon = button.querySelector('i');
32+
33+
// Update button appearance
34+
icon.className = isFiltered ? 'fa fa-eye-slash' : 'fa fa-filter';
35+
button.querySelector('span').textContent = isFiltered ? ' Show Completed' : ' Hide Completed';
36+
37+
// Toggle visibility of completed updates (100%)
38+
const updates = document.querySelectorAll('li[data-flash^="updates/"]');
39+
updates.forEach((update) => {
40+
const contentDiv = update.querySelector('a.media.group.collapse-rotate.rotate-90 > div.media-body.media-middle > div');
41+
if (contentDiv) {
42+
const text = contentDiv.textContent || '';
43+
const isCompleted = text.includes('(100 %)');
44+
if (isCompleted) {
45+
update.style.display = isFiltered ? 'none' : '';
46+
}
47+
}
48+
});
49+
50+
// Toggle visibility of unlocked achievements
51+
const unlockedItems = document.querySelectorAll('li.unlocked.check-item');
52+
unlockedItems.forEach((item) => {
53+
item.style.display = isFiltered ? 'none' : '';
54+
});
55+
}
56+
2657
const buttonTemplate = `
27-
<button type="button" class="btn btn-default btn-xs">
28-
<i class="fa fa-filter"></i> Toggle Visibility
58+
<button id="toggle-visibility-btn" type="button" class="btn btn-default btn-xs">
59+
<i class="fa fa-filter"></i><span> Hide Completed</span>
2960
</button>
3061
`.trim();
3162

3263
const spanContainer = document.querySelector('span.pull-right');
3364
if (spanContainer) {
3465
spanContainer.insertAdjacentHTML('beforeend', buttonTemplate);
35-
36-
// Get the button reference and add event listener
37-
const toggleButton = spanContainer.querySelector('button:last-child');
38-
toggleButton.addEventListener('click', () => {
39-
// Toggle visibility of completed updates (100%)
40-
const updates = document.querySelectorAll('li[data-flash^="updates/"]');
41-
updates.forEach((update) => {
42-
const contentDiv = update.querySelector('a.media.group.collapse-rotate.rotate-90 > div.media-body.media-middle > div');
43-
if (contentDiv) {
44-
const text = contentDiv.textContent || '';
45-
const isCompleted = text.includes('(100 %)');
46-
if (isCompleted) {
47-
update.style.display = update.style.display === 'none' ? '' : 'none';
48-
}
49-
}
50-
});
51-
52-
// Toggle visibility of unlocked achievements
53-
const unlockedItems = document.querySelectorAll('li.unlocked.check-item');
54-
unlockedItems.forEach((item) => {
55-
item.style.display = item.style.display === 'none' ? '' : 'none';
56-
});
57-
});
66+
document.getElementById('toggle-visibility-btn').addEventListener('click', toggleVisibility);
5867
} else {
5968
console.error('Unable to find <span class="pull-right">');
6069
}

0 commit comments

Comments
 (0)