import React from 'react';
import { ConfigProvider } from 'antd';
// eslint-disable-next-line import/no-unresolved
import classNames from 'classnames';

import '../styles/common.less';
import './index.less';
import { getMessageTypeIcon } from '../../utils';

const Unknown = ({ message, confirmRead, handlerUnknowDetail }) => {
  const { getPrefixCls } = React.useContext(ConfigProvider.ConfigContext);
  const prefixCls = getPrefixCls();
  let content = '';
  let noticeTitle = '';
  const { infoContent } = message;
  try {
    const type = typeof message.infoContent;
    switch (type) {
      case 'object':
        noticeTitle = message.title || infoContent.title || '';
        content = infoContent.content || message.defaultContent || JSON.stringify(message.infoContent);
        break;
      default:
        noticeTitle = message.title || '';
        content = message.defaultContent || message.infoContent;
        break;
    }
  } catch (e) {
    // i
  }
  const goPath = item => {
    handlerUnknowDetail && handlerUnknowDetail(message);
    confirmRead(false, [message.id]);
  };
  return (
    <div
      className={classNames(`${prefixCls}-notifier-message_unknown`, `${prefixCls}-notifier-message-container`)}
      title="点击查看详情"
      onClick={() => goPath(message)}
      style={{ backgroundImage: `url(${getMessageTypeIcon(message)})` }}
    >
      <div className={`${prefixCls}-notifier-message-title`}>
        <span>{noticeTitle}</span>
        <img
          className={`${prefixCls}-notifier-message-confirm`}
          title="点击标为已读"
          onClick={e => {
            e.stopPropagation();
            confirmRead(false, [message.id]);
          }}
          // eslint-disable-next-line global-require
          src={require('../../images/oper/ok_line.png')}
          alt=""
        />
      </div>
      <div className={`${prefixCls}-notifier-message-content`}>
        <p>{content}</p>
      </div>
      <div className={`${prefixCls}-notifier-message-time`}>{message.time}</div>
    </div>
  );
};

export default Unknown;