<script setup>
import { formatTime } from '@/utils/datetime'

defineProps({
  login_uid: {
    type: Number,
    default: 0,
  },
  user_id: {
    type: Number,
    default: 0,
  },
  talk_type: {
    type: Number,
    default: 0,
  },
  nickname: {
    type: String,
    default: '',
  },
  datetime: {
    type: String,
    default: '',
  },
  msg_id: {
    type: String,
    default: '',
  },
  revokeInfo: {
    type: Object,
    default() {
      return {}
    },
  },
  extra:{
    type: String,
    default: '',
  }
})
</script>
<template>
  <div class="im-message-revoke">
    <div class="content" v-if="JSON.stringify(revokeInfo) !== '{}'">
      <span v-if="talk_type === 1 && login_uid === revokeInfo.withdraw_id">
        你撤回了一条消息 | {{ formatTime(datetime) }}
        <slot></slot>
        <!-- 添加插槽用于放置重新编辑按钮 -->
      </span>
      <span v-if="talk_type === 1 && login_uid !== revokeInfo.withdraw_id">
        {{revokeInfo.withdraw_name}}撤回了一条消息 | {{ formatTime(datetime) }}
      </span>
      <span v-if="talk_type === 2 && login_uid === revokeInfo.withdraw_id && login_uid === revokeInfo.retracted_id">
        你撤回了一条消息 |
        {{ formatTime(datetime) }}
        <slot></slot>
      </span>
      <span v-if="talk_type === 2 && login_uid === revokeInfo.withdraw_id && login_uid !== revokeInfo.retracted_id">
        你撤回了{{revokeInfo.retracted_name}}一条消息 |
        {{ formatTime(datetime) }}
      </span>
      <span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && revokeInfo.withdraw_id === revokeInfo.retracted_id">
        {{revokeInfo.withdraw_name}}撤回了一条消息 |
        {{ formatTime(datetime) }}
      </span>

      <span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && login_uid === revokeInfo.retracted_id && revokeInfo.withdraw_id !== revokeInfo.retracted_id">
        {{revokeInfo.withdraw_name}}撤回了你一条消息 |
        {{ formatTime(datetime) }}
      </span>
      <span v-if="talk_type === 2 && login_uid !== revokeInfo.withdraw_id && login_uid !== revokeInfo.retracted_id && revokeInfo.withdraw_id !== revokeInfo.retracted_id">
        {{revokeInfo.withdraw_name}}撤回了{{revokeInfo.retracted_name}}一条消息 |
        {{ formatTime(datetime) }}
      </span>

      <!-- <span v-if="login_uid == user_idA"> 你撤回B了一条消息 | {{ formatTime(datetime) }} </span>
      <span v-else-if="login_uid == user_idB"> A撤回你了一条消息 | {{ formatTime(datetime) }} </span>
      <span v-else> A撤回B了一条消息 | {{ formatTime(datetime) }} </span> -->
    </div>
    <div class="content" v-if="JSON.stringify(revokeInfo) === '{}'">
      <span v-if="talk_type === 1 && login_uid === user_id">
        你撤回了一条消息 | {{ formatTime(datetime) }}
        <slot></slot>
        <!-- 添加插槽用于放置重新编辑按钮 -->
      </span>
      <span v-if="talk_type === 1 && login_uid !== user_id">
        {{nickname}}撤回了一条消息 | {{ formatTime(datetime) }}
      </span>
      <span v-if="talk_type === 2 && !extra && login_uid === user_id">
        你撤回了一条消息 | {{ formatTime(datetime) }}
        <slot></slot>
        <!-- 添加插槽用于放置重新编辑按钮 -->
      </span>
      <span v-if="talk_type === 2 && !extra && login_uid !== user_id">
        {{nickname}}撤回了一条消息 | {{ formatTime(datetime) }}
      </span>
      <span v-if="talk_type === 2 && extra">
        {{extra}} | {{ formatTime(datetime) }}
      </span>
    </div>
  </div>
</template>
<style lang="less" scoped>
.im-message-revoke {
  display: flex;
  justify-content: center;

  .content {
    margin: 10px auto;
    background-color: #f5f5f5;
    font-size: 11px;
    line-height: 30px;
    padding: 0 8px;
    word-break: break-all;
    word-wrap: break-word;
    color: #979191;
    user-select: none;
    font-weight: 300;
    display: inline-block;
    border-radius: 3px;

    span {
      margin: 0 5px;
    }
  }
}

html[theme-mode='dark'] {
  .im-message-revoke {
    .content {
      background: unset;
    }
  }
}
</style>