import { useState, useEffect } from 'react'
import { isEmpty } from '@/utils/commons'
import { getEmailDetailAction, postResendEmailAction } from '@/actions/EmailActions'
import { App, Button, Divider, Avatar } from 'antd'

/**
 * @param mai_sn 邮件编号ID
 * @param data 直接传递, 不重复获取
 * * 在详情点击`回复`呼出编辑时
 */
export const useEmailDetail = (mai_sn, data) => {
  const {notification} = App.useApp()
  const [loading, setLoading] = useState(false)
  const [mailData, setMailData] = useState({ loading, info: {}, content: '', attachments: [] })

  useEffect(() => {
    const getEmailDetail = async () => {
      if (isEmpty(mai_sn)) {
        return false
      }
      try {
        setLoading(true)
        const data = await getEmailDetailAction({ mai_sn })
        setMailData(data)
        setLoading(false)
      } catch (err) {
        setLoading(false)
        notification.error({
          message: "请求失败",
          description: err.message || '网络异常',
          placement: "top",
          duration: 3,
        });
      }
    }

    if (isEmpty(data)) getEmailDetail()
    else setMailData(data)
  }, [mai_sn])

  const postEmailResend = async ({ mai_sn, conversationid: externalid, actionId: actionid, ...body }) => {
    if (isEmpty(mai_sn)) {
      return false
    }
    await postResendEmailAction({ mai_sn, externalid, actionid, token: 0 })
  }

  return { loading, mailData, postEmailResend }
}
