fix: custom shortcuts not removing and duplicating on change events

This commit is contained in:
SethBurkart123
2024-03-28 07:34:05 +11:00
parent e68389a793
commit 967fa34ed4
3 changed files with 14 additions and 16 deletions
+11 -13
View File
@@ -2196,7 +2196,6 @@ async function GetLessonColours() {
export function CreateCustomShortcutDiv(element: any) { export function CreateCustomShortcutDiv(element: any) {
// Creates the stucture and element information for each seperate shortcut // Creates the stucture and element information for each seperate shortcut
console.log(`[BetterSEQTA+] Adding shortcut: ${element.name}`)
var shortcut = document.createElement('a') var shortcut = document.createElement('a')
shortcut.setAttribute('href', element.url) shortcut.setAttribute('href', element.url)
shortcut.setAttribute('target', '_blank') shortcut.setAttribute('target', '_blank')
@@ -2232,6 +2231,8 @@ export function CreateCustomShortcutDiv(element: any) {
} }
export function RemoveShortcutDiv(elements: any) { export function RemoveShortcutDiv(elements: any) {
if (elements.length === 0) return
elements.forEach((element: any) => { elements.forEach((element: any) => {
const shortcuts = document.querySelectorAll('.shortcut') const shortcuts = document.querySelectorAll('.shortcut')
shortcuts.forEach((shortcut) => { shortcuts.forEach((shortcut) => {
@@ -2377,21 +2378,19 @@ async function loadHomePage() {
}) })
// Adds the shortcuts to the shortcut container // Adds the shortcuts to the shortcut container
const result = browser.storage.local.get(['shortcuts']) const result = await browser.storage.local.get(['shortcuts'])
function open (result: any) {
const shortcuts = Object.values(result)[0]
const shortcuts = Object.values(result)[0] addShortcuts(shortcuts)
addShortcuts(shortcuts) AddCustomShortcutsToPage()
}
result.then(open, onError)
// Creates the upcoming container and appends to the home container // Creates the upcoming container and appends to the home container
var upcomingcontainer = document.createElement('div') const upcomingcontainer = document.createElement('div')
upcomingcontainer.classList.add('upcoming-container') upcomingcontainer.classList.add('upcoming-container')
upcomingcontainer.classList.add('border') upcomingcontainer.classList.add('border')
let upcomingtitlediv = CreateElement('div', 'upcoming-title') const upcomingtitlediv = CreateElement('div', 'upcoming-title')
let upcomingtitle = document.createElement('h2') const upcomingtitle = document.createElement('h2')
upcomingtitle.classList.add('home-subtitle') upcomingtitle.classList.add('home-subtitle')
upcomingtitle.innerText = 'Upcoming Assessments' upcomingtitle.innerText = 'Upcoming Assessments'
upcomingtitlediv.append(upcomingtitle) upcomingtitlediv.append(upcomingtitle)
@@ -2405,7 +2404,7 @@ async function loadHomePage() {
upcomingcontainer.append(upcomingtitlediv) upcomingcontainer.append(upcomingtitlediv)
let upcomingitems = document.createElement('div') const upcomingitems = document.createElement('div')
upcomingitems.id = 'upcoming-items' upcomingitems.id = 'upcoming-items'
upcomingitems.classList.add('upcoming-items') upcomingitems.classList.add('upcoming-items')
@@ -2675,7 +2674,6 @@ export function addShortcuts(shortcuts: any) {
} }
} }
} }
AddCustomShortcutsToPage()
} }
export function enableNotificationCollector() { export function enableNotificationCollector() {
+2 -2
View File
@@ -37,7 +37,7 @@ const Shortcuts = memo(() => {
if (isValidTitle(newTitle) && isValidURL(newURL)) { if (isValidTitle(newTitle) && isValidURL(newURL)) {
const newShortcut: CustomShortcut = { name: newTitle.trim(), url: formatUrl(newURL).trim(), icon: newTitle[0] }; const newShortcut: CustomShortcut = { name: newTitle.trim(), url: formatUrl(newURL).trim(), icon: newTitle[0] };
const updatedCustomShortcuts = [...settingsState.customshortcuts, newShortcut]; const updatedCustomShortcuts = [...settingsState.customshortcuts, newShortcut];
setSettingsState(prevState => ({ ...prevState, updatedCustomShortcuts })); setSettingsState({ ...settingsState, customshortcuts: updatedCustomShortcuts });
setNewTitle(""); setNewTitle("");
setNewURL(""); setNewURL("");
@@ -45,7 +45,7 @@ const Shortcuts = memo(() => {
setFormVisible(false); setFormVisible(false);
} else { } else {
// Replace with a more user-friendly way to display errors // Replace with a more user-friendly way to display errors
console.error("Please enter a valid title and URL."); alert("Please enter a valid title and URL.");
} }
}, [newTitle, newURL, isValidTitle, isValidURL, setSettingsState]); }, [newTitle, newURL, isValidTitle, isValidURL, setSettingsState]);
+1 -1
View File
@@ -133,7 +133,7 @@ export default class StorageListener {
); );
if (removedElement) { if (removedElement) {
RemoveShortcutDiv(removedElement); RemoveShortcutDiv([ removedElement ]);
} }
} }
} }