type QuickAddListener = () => void;

const listeners = new Set<QuickAddListener>();
let pending = false;

export function requestQuickAddFocus(): void {
  pending = true;
  listeners.forEach((listener) => listener());
}

export function subscribeToQuickAdd(listener: QuickAddListener): () => void {
  if (pending) {
    listener();
    pending = false;
  }
  listeners.add(listener);
  return () => {
    listeners.delete(listener);
  };
}
