// 假设 AnimationResource 是一个自定义的动画资源类型
interface AnimationResource {
  source: string;
  // 可以根据实际需求添加更多属性
}

class AnimationsManager {
  private static currentAnimation: AnimationResource | null = null;

  /**
   * 加载动画资源
   * @param animation 动画资源对象
   */
  public static loadAnimation(animation: AnimationResource): void {
    if (
      !this.currentAnimation ||
      this.currentAnimation.source !== animation.source
    ) {
      // 这里可以添加移除当前动画资源的逻辑，例如清理 DOM 中的动画元素等
      this.currentAnimation = animation;
      // 这里可以添加加载新动画资源的逻辑，例如动态引入 CSS 或 JS 文件等
      console.log(`Loading animation from source: ${animation.source}`);
    }
  }

  /**
   * 根据 URI 加载动画资源
   * @param animationUri 动画资源的 URI
   */
  public static loadAnimationByUri(animationUri: string): void {
    const animationResource: AnimationResource = {
      source: animationUri,
    };
    this.loadAnimation(animationResource);
  }
}

export default AnimationsManager;