/* eslint-disable @typescript-eslint/no-unused-vars */
import { subscribePlaylist, subscribeSingle, userPlaylist } from '@/api'
import { isLogin } from '@/helpers/index'
import { useAuthView, useAuth } from '@/hooks/index'
import { success } from '@/hooks'
import { syncToAsync } from '@/utils/index'
import { Modal } from 'ant-design-vue'
import { Song } from '@/interface'
import { ref } from 'vue'
import classnames from 'classnames'
import './subscribe.less'

export type SubscribeActionType = '1' | '2'

export const useSubscribe = (isSingle: boolean) => {
  const viewLogin = useAuthView()
  const user = useAuth()

  return async (type: SubscribeActionType, id: number) => {
    if (!isLogin()) {
      viewLogin(true)
      return false
    }
    if (isSingle) {
      const userSub = await userPlaylist(user.account.value.id)
      // const selected = await syncToAsync(resolve => {
      //   const select = ref({
      //     id: -1
      //   })
      //   const modal = Modal.confirm({
      //     title: '添加到歌单',
      //     icon: '',
      //     centered: true,
      //     okText: '确定',
      //     cancelText: '取消',
      //     onOk: () => {
      //       resolve(select.value)
      //       modal.destroy()
      //     },
      //     content: (
      //       <ul class="optional-playlist">
      //         {userSub.map(item => (
      //           <li
      //             data-id={String(item.id)}
      //             class={classnames({
      //               'active-selected': item.id === select.value.id
      //             })}
      //             onClick={() => {
      //               select.value = item
      //               document
      //                 .querySelector('.active-selected')
      //                 ?.classList.remove('active-selected')
      //               document
      //                 .querySelector(
      //                   `.optional-playlist li[data-id="${item.id}"]`
      //                 )
      //                 ?.classList.add('active-selected')
      //             }}
      //           >
      //             {item.name}
      //           </li>
      //         ))}
      //       </ul>
      //     )
      //   })
      // })
      // console.log(selected)
      // if (selected) {
      //   await subscribeSingle(type, (selected as Song).id, [id])
      // }
      const like = userSub.find(o => o.specialType === 5)
      if (like) {
        await subscribeSingle(type, like.id, [id])
      }
    } else {
      await subscribePlaylist(type, id)
    }
    success(type === '1' ? '收藏成功' : '取消收藏成功')
    return true
  }
}