4chan-XZ/src/Quotelinks/QuoteCT.js
2023-04-13 03:11:52 +02:00

49 lines
1.4 KiB
JavaScript

import $ from "../platform/$";
import Callbacks from "../classes/Callbacks";
import ExpandComment from "../Miscellaneous/ExpandComment";
import { g, Conf } from "../globals/globals";
import Get from "../General/Get";
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
var QuoteCT = {
init() {
if (!['index', 'thread'].includes(g.VIEW) || !Conf['Mark Cross-thread Quotes']) { return; }
if (Conf['Comment Expansion']) {
ExpandComment.callbacks.push(this.node);
}
// \u00A0 is nbsp
this.mark = $.el('span', {
textContent: '\u00A0(Cross-thread)',
className: 'qmark-ct'
}
);
return Callbacks.Post.push({
name: 'Mark Cross-thread Quotes',
cb: this.node
});
},
node() {
// Stop there if it's a clone of a post in the same thread.
if (this.isClone && (this.thread === this.context.thread)) { return; }
const {board, thread} = this.context;
for (var quotelink of this.nodes.quotelinks) {
var {boardID, threadID} = Get.postDataFromLink(quotelink);
if (!threadID) { continue; } // deadlink
if (this.isClone) {
$.rm($('.qmark-ct', quotelink));
}
if ((boardID === board.ID) && (threadID !== thread.ID)) {
$.add(quotelink, QuoteCT.mark.cloneNode(true));
}
}
}
};
export default QuoteCT;