docbrown/app/javascript/contentDisplayPolicy/hideBlockedContent.js
Andy Zhao 85d8f52789 Hide a blocked user's content [deploy] (#4678)
* Hide blocked users' content appropriately

* Use RESTful create route

* Update functionality to block the user

* Fix specs for new route

* Use const instead of var

* Add noopener and noreferrer

* Remove caching for blocked user ids

* Add new rule for lack of noopener noreferrer

* Update snapshot
2019-11-04 14:47:26 -05:00

26 lines
902 B
JavaScript

export default function hideBlockedContent() {
const contentUserElements = Array.from(
document.querySelectorAll('div[data-content-user-id]'),
);
const blockedUserIds = userData().blocked_user_ids;
const divsToHide = contentUserElements.filter(div => {
const { contentUserId } = div.dataset;
return blockedUserIds.includes(parseInt(contentUserId, 10));
});
divsToHide.forEach(div => {
if (div.className.includes('single-article')) {
div.style.display = 'none';
} else if (div.className.includes('single-comment-node')) {
const divInnerComment = div.querySelector('div.inner-comment');
divInnerComment.innerHTML = `
<div class="body " style="padding-bottom:32px;opacity:0.3;user-select:none;cursor:default">
[blocked content]
</div>
`;
}
});
}
window.addEventListener('checkBlockedContent', hideBlockedContent);