chore: fix stylistic issues
This commit is contained in:
parent
b61dbc4a57
commit
9a1f476a0b
2 changed files with 34 additions and 32 deletions
|
@ -145,12 +145,13 @@ function getInteractionType(url) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Handles changes to the URL of a tab
|
||||
* Handles changes to the URL of a tab.
|
||||
* @returns {void}
|
||||
*/
|
||||
function onTabUpdate() {
|
||||
browser.tabs.executeScript(null, {
|
||||
file: `/content_script/mastodonInject.js`
|
||||
})
|
||||
file: "/content_script/mastodonInject.js"
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
* @returns {VersionNumber}
|
||||
*/
|
||||
function parseVersionNumber() {
|
||||
const versionElement = document.querySelector(`.link-footer`).textContent
|
||||
const versionNumber = versionElement.match(/v?(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)$/)
|
||||
return versionNumber.groups
|
||||
const versionElement = document.querySelector(`.link-footer`).textContent;
|
||||
const versionNumber = versionElement.match(/v?(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)$/);
|
||||
return versionNumber.groups;
|
||||
}
|
||||
|
||||
|
||||
|
@ -21,45 +21,46 @@ function parseVersionNumber() {
|
|||
* @param {Event} event
|
||||
*/
|
||||
function onClickFollow(event) {
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
const username = window.location.pathname.split(`/`).slice(-1)[0]
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
const username = window.location.pathname.split(`/`).slice(-1)[0];
|
||||
// activate AutoRemoteFollow
|
||||
window.open(`/users/${username}/remote_follow`, `_blank`)
|
||||
window.open(`/users/${username}/remote_follow`, `_blank`);
|
||||
}
|
||||
|
||||
/**
|
||||
* wait for element to appear
|
||||
* @param {string} selector
|
||||
* @param {number} timeout
|
||||
* @see {@link https://github.com/storybookjs/test-runner/blob/6d41927154e8dd1e4c9e7493122e24e2739a7a0f/src/setup-page.ts#L134} from which this was adapted
|
||||
*/
|
||||
function waitForElement(selector, timeout) {
|
||||
return new Promise((resolve, reject) => {
|
||||
function getElement() {
|
||||
return document.querySelector(selector)
|
||||
return document.querySelector(selector);
|
||||
}
|
||||
|
||||
const element = getElement()
|
||||
const element = getElement();
|
||||
if(element){
|
||||
return resolve(element)
|
||||
return resolve(element);
|
||||
}
|
||||
|
||||
const observer = new MutationObserver(() => {
|
||||
const element = getElement()
|
||||
const element = getElement();
|
||||
if(element){
|
||||
resolve(element)
|
||||
observer.disconnect()
|
||||
resolve(element);
|
||||
observer.disconnect();
|
||||
}
|
||||
})
|
||||
|
||||
observer.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
})
|
||||
});
|
||||
|
||||
window.setTimeout(() => {
|
||||
reject()
|
||||
}, timeout)
|
||||
reject();
|
||||
}, timeout);
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -68,33 +69,33 @@ function waitForElement (selector, timeout) {
|
|||
*/
|
||||
async function injectFollowButton() {
|
||||
try {
|
||||
const followButton = await waitForElement(`.account__header__tabs__buttons button.button`, 20000)
|
||||
followButton.addEventListener(`click`, onClickFollow)
|
||||
const followButton = await waitForElement(`.account__header__tabs__buttons button.button`, 20000);
|
||||
followButton.addEventListener(`click`, onClickFollow);
|
||||
} catch {
|
||||
// Follow button failed to appear
|
||||
}
|
||||
}
|
||||
|
||||
async function init() {
|
||||
let versionNumber
|
||||
let versionNumber;
|
||||
|
||||
try {
|
||||
const initialStateObject = JSON.parse(document.getElementById(`initial-state`).innerHTML)
|
||||
const version = initialStateObject?.meta?.version
|
||||
const initialStateObject = JSON.parse(document.getElementById(`initial-state`).innerHTML);
|
||||
const version = initialStateObject?.meta?.version;
|
||||
if(!initialStateObject || !version){
|
||||
// not a Mastodon server
|
||||
return
|
||||
return;
|
||||
}
|
||||
|
||||
versionNumber = parseVersionNumber(version)
|
||||
versionNumber = parseVersionNumber(version);
|
||||
} catch {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
if(Number.parseInt(versionNumber.major) >= 4){
|
||||
await injectFollowButton()
|
||||
await injectFollowButton();
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
init();
|
Loading…
Add table
Add a link
Reference in a new issue