import {useEffect, useState} from 'react';
import {addonManager} from '../api/addonManager';
import {AddonStreamResult, ContentType} from '../api/addonTypes';

export function useStreams(type: ContentType, id: string) {
  const [results, setResults] = useState<AddonStreamResult[]>([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState<string | null>(null);

  useEffect(() => {
    if (!id) return;
    setLoading(true);
    setError(null);
    addonManager
      .getStreamsFromAll(type, id)
      .then(r => {
        setResults(r);
        setLoading(false);
      })
      .catch(e => {
        setError(String(e));
        setLoading(false);
      });
  }, [type, id]);

  return {results, loading, error};
}
