applyLabelEffect function exported
Last updated: 2026-03-05T10:53:28.862Z
Metrics
LOC: 37
Complexity: 5
Params: 3
Signature
applyLabelEffect(
target: Element | null,
config: LabelEffect,
): : Promise<void>
Summary
Applies the label effect on target and resolves after it's done.
Source Code
export function applyLabelEffect(
target: Element | null,
config: LabelEffect,
): Promise<void> {
return new Promise((resolve) => {
if (!target || !config.text?.trim()) {
resolve();
return;
}
injectStyles();
const duration = config.duration ?? 2000;
const pos = config.position ?? "above";
const rect = target.getBoundingClientRect();
const label = document.createElement("div");
label.className = LABEL_CLASS;
label.setAttribute("data-pos", pos);
label.textContent = config.text;
document.body.appendChild(label);
// Position after paint so getBoundingClientRect works
requestAnimationFrame(() => {
position(label, rect, pos);
requestAnimationFrame(() => label.classList.add("visible"));
});
setTimeout(() => {
label.classList.remove("visible");
setTimeout(() => {
label.remove();
resolve();
}, 240);
}, duration);
});
}
Dependencies (Outgoing)
| Target | Type |
|---|---|
| injectStyles | calls |
| position | calls |
Impact (Incoming)
| Source | Type |
|---|---|
| resolveTarget | uses |
| applyEffect | calls |