blob: 10845668886782b623a1150855ee4f60fd7f11c2 [file] [log] [blame]
import CssSelectorNodeWatcherHandler from '../../../../infrastructure/presentation/nodeWatcher/handlers/CssSelectorHandler.adapter';
import { NodeMutation } from '../../../../presentation/nodeWatcher/NodeWatcherHandler';
import { OptionsProviderPort } from '../../../../services/options/OptionsProvider';
import BulkReportControlsInjector from '../../ui/injectors/bulkReportControls.injector';
/**
* Injects the bulk report reply controls.
*/
export default class BulkReportRepliesMessageCardHandler extends CssSelectorNodeWatcherHandler {
cssSelector =
':is(.scTailwindThreadMessageMessagecardcontent:not(.scTailwindThreadMessageMessagecardpromoted), .scTailwindThreadMessageCommentcardcomment) sc-tailwind-thread-message-message-actions';
bulkReportControlsInjector = new BulkReportControlsInjector();
constructor(private optionsProvider: OptionsProviderPort) {
super();
}
async onMutatedNode(mutation: NodeMutation) {
if (!(mutation.node instanceof Element)) return;
const isFeatureEnabled =
await this.optionsProvider.isEnabled('bulkreportreplies');
if (!isFeatureEnabled) return;
this.bulkReportControlsInjector.inject(mutation.node);
}
}