applyGrowEffect function exported

Last updated: 2026-03-05T10:53:28.861Z

Metrics

LOC: 35 Complexity: 5 Params: 3

Signature

applyGrowEffect( target: Element | null, config: GrowEffect, ): : Promise<void>

Summary

Applies the grow effect on target and resolves after it finishes.

Source Code

export function applyGrowEffect(
  target: Element | null,
  config: GrowEffect,
): Promise<void> {
  return new Promise((resolve) => {
    if (!target || !(target instanceof HTMLElement)) {
      resolve();
      return;
    }

    const scale = config.scale ?? 1.15;
    const duration = config.duration ?? 400;

    const prevTransition = target.style.transition;
    const prevTransform = target.style.transform;
    const prevZIndex = target.style.zIndex;

    target.style.transition = `transform ${duration / 2}ms ease`;
    target.style.zIndex = "9999";
    target.style.transform = `${prevTransform} scale(${scale})`;

    setTimeout(() => {
      target.style.transform = prevTransform;

      setTimeout(
        () => {
          target.style.transition = prevTransition;
          target.style.zIndex = prevZIndex;
          resolve();
        },
        duration / 2 + 20,
      );
    }, duration / 2);
  });
}

Dependencies (Outgoing)

graph LR applyGrowEffect["applyGrowEffect"] GrowEffect["GrowEffect"] applyGrowEffect -->|uses| GrowEffect style applyGrowEffect fill:#dbeafe,stroke:#2563eb,stroke-width:2px click applyGrowEffect "03333ac13d2a3f3b.html" click GrowEffect "f83bf139e27a5de4.html"
TargetType
GrowEffect uses

Impact (Incoming)

graph LR applyGrowEffect["applyGrowEffect"] resolveTarget["resolveTarget"] applyEffect["applyEffect"] resolveTarget -->|uses| applyGrowEffect applyEffect -->|calls| applyGrowEffect style applyGrowEffect fill:#dbeafe,stroke:#2563eb,stroke-width:2px click applyGrowEffect "03333ac13d2a3f3b.html" click resolveTarget "cefe589bdbdd3b3b.html" click applyEffect "baf0d9f2a6803bb4.html"
SourceType
resolveTarget uses
applyEffect calls