import { useContext } from 'react'
import { useNetwork } from '../components/useNetwork'
import { ArtistContext } from '../contexts/ArtistContext'
import { UserContext } from '../contexts/UserContext'
import { EventType, sendAnalyticsEvent } from '../hooks/useAnalytics'
import { Video } from '../types/types'

export interface VideoListResponse {
  videos: Video[]
}

export function useVideos() {
  const user = useContext(UserContext)
  const artist = useContext(ArtistContext)
  const { data, showToast, refreshControl, error } =
    useNetwork<VideoListResponse>(
      `api/artists/${artist.sonyArtistId}/videos`,
      user,
      () =>
        sendAnalyticsEvent(EventType.PULL_TO_REFRESH, {
          artist_selected: artist.name,
          page: 'Videos Screen',
          subject: 'user',
          verb: 'refreshed',
          object: 'videos',
        })
    )

  return { data, showToast, refreshControl, error }
}
