import 'package:dartboard_resume/widgets/footnote.dart';
import 'package:pdf/widgets.dart';

class AnnotationManager {
  // Factory constructor to return the single instance
  factory AnnotationManager() {
    return _instance;
  }

  // Private constructor
  AnnotationManager._privateConstructor();

  // Static field to hold the single instance of the class
  static final AnnotationManager _instance = AnnotationManager._privateConstructor();

  // Field to hold the number
  int _numUrls = 0;
  List<Widget> _urlWidgets = [];
  TextStyle? _style;

  // ignore: avoid_setters_without_getters
  set style(TextStyle style) => _style = style;

  int add({required String url}) {
    _numUrls += 1;
    if (_style == null) {
      throw Exception('Must provide text style for urls');
    }
    _urlWidgets.add(Footnote(number: _numUrls, style: _style!, url: url));
    return _numUrls;
  }

  List<Widget> get footnotes {
    final widgets = [..._urlWidgets];
    reset();
    return widgets;
  }

  // Method to reset the number
  void reset() {
    _numUrls = 0;
    _urlWidgets = [];
  }
}