| import OptionsWatcher from '../../../common/optionsWatcher.js'; |
| |
| import ProfileInfoHandler from './infoHandlers/profile.js'; |
| import ThreadInfoHandler from './infoHandlers/thread.js'; |
| import ThreadListInfoHandler from './infoHandlers/threadList.js'; |
| import ExpandedThreadListExtraInfoInjection from './injections/expandedThreadList.js'; |
| import ProfileAbuseExtraInfoInjection from './injections/profileAbuse.js'; |
| import ProfilePerForumStatsExtraInfoInjection from './injections/profilePerForumStats.js'; |
| import ThreadCommentExtraInfoInjection from './injections/threadComment.js'; |
| import ThreadListExtraInfoInjection from './injections/threadList.js'; |
| import ThreadQuestionExtraInfoInjection from './injections/threadQuestion.js'; |
| import ThreadReplyExtraInfoInjection from './injections/threadReply.js'; |
| |
| export default class ExtraInfo { |
| constructor() { |
| const optionsWatcher = new OptionsWatcher(['extrainfo', 'perforumstats']); |
| |
| const profileInfoHandler = new ProfileInfoHandler(); |
| const threadInfoHandler = new ThreadInfoHandler(); |
| const threadListInfoHandler = new ThreadListInfoHandler(); |
| |
| this.profileAbuse = |
| new ProfileAbuseExtraInfoInjection(profileInfoHandler, optionsWatcher); |
| this.profilePerForumStats = new ProfilePerForumStatsExtraInfoInjection( |
| profileInfoHandler, optionsWatcher); |
| this.threadQuestion = |
| new ThreadQuestionExtraInfoInjection(threadInfoHandler, optionsWatcher); |
| this.threadReply = |
| new ThreadReplyExtraInfoInjection(threadInfoHandler, optionsWatcher); |
| this.threadComment = |
| new ThreadCommentExtraInfoInjection(threadInfoHandler, optionsWatcher); |
| this.expandedThreadList = new ExpandedThreadListExtraInfoInjection( |
| threadListInfoHandler, optionsWatcher); |
| this.threadList = |
| new ThreadListExtraInfoInjection(threadListInfoHandler, optionsWatcher); |
| } |
| |
| injectAbuseChipsAtProfileIfEnabled(card) { |
| this.profileAbuse.injectIfEnabled({card}); |
| } |
| |
| injectAtThreadListIfEnabled(li) { |
| const injectionDetails = this.threadList.getInjectionDetails(li); |
| this.threadList.injectIfEnabled(injectionDetails); |
| } |
| |
| injectAtExpandedThreadListIfEnabled(toolbelt) { |
| const injectionDetails = |
| this.expandedThreadList.getInjectionDetails(toolbelt); |
| this.expandedThreadList.injectIfEnabled(injectionDetails); |
| } |
| |
| injectPerForumStatsIfEnabled(chart) { |
| this.profilePerForumStats.injectIfEnabled({chart}); |
| } |
| |
| injectAtQuestionIfEnabled(stateChips) { |
| this.threadQuestion.injectIfEnabled({stateChips, isMessageNode: false}); |
| } |
| |
| injectAtReplyIfEnabled(messageNode) { |
| this.threadReply.injectIfEnabled({messageNode, isMessageNode: true}); |
| } |
| |
| injectAtCommentIfEnabled(messageNode) { |
| this.threadComment.injectIfEnabled({messageNode, isMessageNode: true}); |
| } |
| } |