mirror of
https://github.com/anatolykopyl/vk-mute.git
synced 2026-03-26 21:05:16 +00:00
Refactoring and add build-tools
This commit is contained in:
47
src/utils/Url.js
Normal file
47
src/utils/Url.js
Normal file
@@ -0,0 +1,47 @@
|
||||
const INTERVAL_TIME = 100;
|
||||
|
||||
export class UrlController {
|
||||
|
||||
constructor() {
|
||||
this._changeListeners = [];
|
||||
this._interval = null;
|
||||
this._url = window.location.href;
|
||||
}
|
||||
|
||||
onChange(cb) {
|
||||
this._changeListeners.push(cb);
|
||||
if (this._interval === null) {
|
||||
this._createInterval();
|
||||
}
|
||||
}
|
||||
|
||||
removeEventListener(cb) {
|
||||
this._changeListeners = this._changeListeners.filter(item=>item !== cb);
|
||||
if(this._changeListeners.length === 0) {
|
||||
this._clearInterval();
|
||||
}
|
||||
}
|
||||
|
||||
_intervalTick() {
|
||||
const currentUrl = window.location.href;
|
||||
if (currentUrl !== this.url) {
|
||||
this._broadcast(this.url, currentUrl);
|
||||
this.url = currentUrl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_broadcast(oldUrl, newUrl) {
|
||||
this._changeListeners.forEach(cb => cb(oldUrl, newUrl));
|
||||
}
|
||||
|
||||
_createInterval() {
|
||||
this.interval = setInterval(() => this._intervalTick(), INTERVAL_TIME)
|
||||
}
|
||||
|
||||
_clearInterval() {
|
||||
clearInterval(this.interval)
|
||||
this.interval = null
|
||||
}
|
||||
|
||||
}
|
||||
3
src/utils/getChatBody.js
Normal file
3
src/utils/getChatBody.js
Normal file
@@ -0,0 +1,3 @@
|
||||
export function getChatBody() {
|
||||
return document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0];
|
||||
}
|
||||
Reference in New Issue
Block a user