Files
BetterSEQTA-Plus/src/seqta/utils/Adders/AddShortcuts.ts
T
StroepWafel 6ffacc83a7 Update AddShortcuts.ts - use DisplayName
made use DisplayName for name with fallback if value is null, empty or invalid
2025-05-08 21:52:09 +09:30

47 lines
1.5 KiB
TypeScript

import ShortcutLinks from "@/seqta/content/links.json";
import stringToHTML from "../stringToHTML";
export function addShortcuts(shortcuts: any) {
for (let i = 0; i < shortcuts.length; i++) {
const currentShortcut = shortcuts[i];
if (currentShortcut?.enabled) {
const Itemname = (currentShortcut?.name ?? "").replace(/\s/g, "");
const linkDetails =
ShortcutLinks?.[Itemname as keyof typeof ShortcutLinks];
if (linkDetails) {
createNewShortcut(
linkDetails.link,
linkDetails.icon,
linkDetails.viewBox,
linkDetails.DisplayName || currentShortcut?.name,
);
} else {
console.warn(`No link details found for '${Itemname}'`);
}
}
}
}
function createNewShortcut(link: any, icon: any, viewBox: any, title: any) {
// Creates the stucture and element information for each seperate shortcut
let shortcut = document.createElement("a");
shortcut.setAttribute("href", link);
shortcut.setAttribute("target", "_blank");
let shortcutdiv = document.createElement("div");
shortcutdiv.classList.add("shortcut");
let image = stringToHTML(
`<svg style="width:39px;height:39px" viewBox="${viewBox}"><path fill="currentColor" d="${icon}" /></svg>`,
).firstChild;
(image! as HTMLElement).classList.add("shortcuticondiv");
let text = document.createElement("p");
text.textContent = title;
shortcutdiv.append(image as HTMLElement);
shortcutdiv.append(text);
shortcut.append(shortcutdiv);
document.getElementById("shortcuts")!.appendChild(shortcut);
}