Make tooltips render automatically

This commit is contained in:
Riyyi
2025-04-02 22:52:07 +02:00
parent 8110667234
commit 9878bbdb8c
11 changed files with 107 additions and 32 deletions
+19 -1
View File
@@ -1,6 +1,9 @@
import { defineStore } from "pinia"
import { ref } from "vue";
// @ts-ignore
import bootstrap from "bootstrap/dist/js/bootstrap.bundle.min";
export const useStateStore = defineStore("state", () => {
const colorMode = ref<string>("light");
@@ -10,7 +13,22 @@ export const useStateStore = defineStore("state", () => {
html.setAttribute('data-bs-theme', colorMode.value);
};
return { colorMode, toggleColorMode }
const popoverList = ref<any[]>([]);
const tooltipList = ref<any[]>([]);
const initBootstrap = (): void => {
// Initialize popovers
popoverList.value.forEach(popover => popover.dispose());
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]');
popoverList.value = [...popoverTriggerList].map(popover => new bootstrap.Popover(popover));
// Initialize tooltips
tooltipList.value.forEach(tooltip => tooltip.dispose());
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]:not([data-bs-show])');
tooltipList.value = [...tooltipTriggerList].map(tooltip => new bootstrap.Tooltip(tooltip));
};
return { colorMode, toggleColorMode, initBootstrap }
}, {
persist: process.env.NODE_ENV === 'development' ? true : false,
})