import { Directive } from "vue";

export default {
	mounted(src, binding, vn) {
		const getBgColor = (el: HTMLElement) => {
			const style = window.getComputedStyle(el);
			if (
				style.backgroundColor &&
				!["rgba(0, 0, 0, 0)", "rgba(0,0,0,0)", "transparent"].includes(
					style.backgroundColor,
				)
			) {
				return style.backgroundColor;
			} else {
				return el.parentElement ? getBgColor(el.parentElement) : "transparent";
			}
		};

		const parentBg = getBgColor(src.parentElement);

		const myBg = getComputedStyle(document.documentElement).getPropertyValue(
			"--panel",
		);

		if (parentBg === myBg) {
			src.style.backgroundColor = "var(--bg)";
		} else {
			src.style.backgroundColor = "var(--panel)";
		}
	},
} as Directive;
