Skip to content

Commit 30213b9

Browse files
authored
Unobserved child node removals (#1096)
* fix(userscript): listen to node removals * fix(combined): observe node removals
1 parent 928d6df commit 30213b9

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

Extensions/UserScript/Return Youtube Dislike.user.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,12 @@ function setDislikes(dislikesCount) {
258258
mobileDislikes = dislikesCount;
259259
return;
260260
}
261-
getDislikeTextContainer()?.removeAttribute("is-empty");
262-
getDislikeTextContainer().innerText = dislikesCount;
261+
262+
const _container = getDislikeTextContainer();
263+
_container?.removeAttribute("is-empty");
264+
if (_container?.innerText !== dislikesCount) {
265+
_container.innerText = dislikesCount;
266+
}
263267
}
264268

265269
function getLikeCountFromButton() {
@@ -648,6 +652,7 @@ function setEventListeners(evt) {
648652
{
649653
attributes: true,
650654
subtree: true,
655+
childList: true,
651656
},
652657
updateDOMDislikes,
653658
);

Extensions/combined/src/events.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ function createSmartimationObserver() {
116116
{
117117
attributes: true,
118118
subtree: true,
119+
childList: true,
119120
},
120121
updateDOMDislikes,
121122
);

Extensions/combined/src/state.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,20 +156,28 @@ function setLikes(likesCount) {
156156

157157
function setDislikes(dislikesCount) {
158158
cLog(`SET dislikes ${dislikesCount}`);
159-
getDislikeTextContainer()?.removeAttribute("is-empty");
159+
160+
const _container = getDislikeTextContainer();
161+
_container?.removeAttribute("is-empty");
162+
163+
let _dislikeText
160164
if (!isLikesDisabled()) {
161165
if (isMobile()) {
162166
getButtons().children[1].querySelector(".button-renderer-text").innerText = dislikesCount;
163167
return;
164168
}
165-
getDislikeTextContainer().innerText = dislikesCount;
169+
_dislikeText = dislikesCount;
166170
} else {
167171
cLog("likes count disabled by creator");
168172
if (isMobile()) {
169173
getButtons().children[1].querySelector(".button-renderer-text").innerText = localize("TextLikesDisabled");
170174
return;
171175
}
172-
getDislikeTextContainer().innerText = localize("TextLikesDisabled");
176+
_dislikeText = localize("TextLikesDisabled");
177+
}
178+
179+
if (_dislikeText != null && _container?.innerText !== _dislikeText) {
180+
_container.innerText = _dislikeText;
173181
}
174182
}
175183

0 commit comments

Comments
 (0)