Bilibili-Evolved/utils/gui-settings/tooltip/settings-tooltip.loader.ts
2019-04-15 22:46:17 +08:00

40 lines
1.1 KiB
TypeScript

function extractKey(listItem: Element)
{
const input = listItem.querySelector("input");
if (input)
{
return input.getAttribute("key");
}
return null;
}
(async () =>
{
resources.applyStyle("settingsTooltipStyle");
const { toolTips } = await import(`settings-tooltip.${getI18nKey()}`);
const tooltip = await SpinQuery.select(".gui-settings-tooltip");
if (!tooltip)
{
return;
}
document.querySelectorAll(".gui-settings-content>ul>li").forEach(element =>
{
element.addEventListener("mouseover", () =>
{
const key = extractKey(element);
if (key === null || toolTips === null)
{
return;
}
const tipText = toolTips.get(key);
if (tipText !== undefined)
{
tooltip.innerHTML = tipText;
tooltip.classList.add("show");
}
});
element.addEventListener("mouseout", () =>
{
tooltip.classList.remove("show");
});
});
})();