<template>
  <!-- :class="[$attrs.index % 2 == 0 ? 'read' : 'unread']" -->
  <div class="user__item-container">
    <div class="btn user__item w-100" :disabled="buttonLoading">
      <div>
        <svg
          class="icon icon-Component-241--5"
          style="color: var(--primary-color)"
        >
          <use xlink:href="#icon-Component-241--5"></use>
        </svg>
      </div>

      <!-- <div class="user__pic">
        <img
          :src="imageBaseUrl + item._source.attachment[0].link"
          :alt="item._source.username"
        />
      </div> -->
      <!-- <div class="user__content">
        <div class="user__item-head">
          <div class="user__name">
            {{ item._source.username }}
            <div class="user__status">دیدگاه نوشت</div>
          </div>
          <div class="user__date">
            {{ timeSince(item._source.time_edit) }} پیش
          </div>
        </div>
        <div
          v-if="showTitle"
          class="user__text"
          v-html="item._source.title"
        ></div>
        <div v-else class="user__text" v-html="item._source.description"></div>
      </div> -->
      <div class="user__content">
        <div class="col" @click="$emit('go-to-notification-show-page', item)">
          <!-- <div class="user__item-head">
          {{ item._source.username }}
        </div> -->
          <div
            v-if="showTitle"
            class="user__text"
            :class="{ user__text_show: shortenTitle == true }"
            v-html="item?._source?.title"
          ></div>
          <div v-else>
            <div class="user__text" v-html="item?._source?.title"></div>
            <div class="user__text" v-html="item?._source?.description"></div>
          </div>
          <div class="user__date">
            {{ timeSince(item?._source?.time_edit) }} پیش
          </div>
        </div>
        <div v-if="showTools">
          <div class="col-auto">
            <span
              class="badge"
              :class="[($attrs.index as number) % 2 === 0 ? 'badge-success' : 'badge-danger']"
              >جدید</span
            >
          </div>
          <div class="col-auto d-flex">
            <div class="dropdown">
              <button
                class="btn dropdown-toggle"
                type="button"
                id="dropdownMenuButton"
                data-toggle="dropdown"
                aria-haspopup="true"
                aria-expanded="false"
              >
                دسته بندی
              </button>
              <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                <a class="dropdown-item" href="#">دسته یک</a>
                <a class="dropdown-item" href="#">دسته دو</a>
                <a class="dropdown-item" href="#">دسته سه</a>
              </div>
            </div>

            <button-component
              @click="deleteNotification(item)"
              buttonText=""
              v-tooltip="'حذف'"
              classes="btn"
            >
              <svg class="icon icon-Component-295--1">
                <use xlink:href="#icon-Component-295--1"></use>
              </svg>
            </button-component>
          </div>
        </div>
      </div>
    </div>
    <div v-if="showActions" class="search-item__actions">
      <span class="tavasi tavasi-more-vert"></span>
      <button
        @click.pevent="$emit('edit-item')"
        title="ویرایش"
        class="btn"
        type="button"
      >
        <svg class="icon icon-Component-242--1">
          <use xlink:href="#icon-Component-242--1"></use>
        </svg>
      </button>
      <button
        @click="$emit('delete-item')"
        title="حذف"
        class="btn"
        type="button"
      >
        <svg class="icon icon-Component-295--1">
          <use xlink:href="#icon-Component-295--1"></use>
        </svg>
      </button>
    </div>
  </div>
</template>

<script lang="ts">
import apis from "~/apis/adminApi";
import type { listNotification } from "~/types/notificationTypes";

export default {
  props: {
    item: {
      type: Object as PropType<listNotification>,
      default() {
        return {};
      },
    },
    buttonLoading: {
      type: Boolean,
      default: false,
    },
    showTools: {
      type: Boolean,
      default: false,
    },
    showActions: {
      type: Boolean,
      default: false,
    },
    showTitle: {
      type: Boolean,
      default: true,
    },
    shortenTitle: {
      type: Boolean,
      default: false,
    },
  },

  // beforeMount() {
  //   this.httpService = new HttpService(
  //     import.meta.env.VITE_BASE_URL + repoUrl()
  //   );
  // },
  data() {
    return {
      // httpService: undefined,
    };
  },
  emits: ["go-to-notification-show-page", "delete-item", "edit-item"],
  computed: {
    imageBaseUrl() {
      return import.meta.env.VITE_BASE_URL;
    },
  },
  methods: {
    timeSince(timeStamp: number) {
      var date = new Date(timeStamp * 1000);
      var seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000); //برای خطا ندادنه تایپ اسکریپت از متد getTime()  که تعداد میلی‌ثانیه‌های معادل یک شیء تاریخ را برمی‌گرداند باید استفاده کرد
      var interval = seconds / 31536000;

      if (interval > 1) {
        return Math.floor(interval) + " سال";
      }
      interval = seconds / 2592000;
      if (interval > 1) {
        return Math.floor(interval) + " ماه";
      }
      interval = seconds / 86400;
      if (interval > 1) {
        return Math.floor(interval) + " روز";
      }
      interval = seconds / 3600;
      if (interval > 1) {
        return Math.floor(interval) + " ساعت";
      }
      interval = seconds / 60;
      if (interval > 1) {
        return Math.floor(interval) + " دقیقه";
      }
      return Math.floor(seconds) + " ثانیه";
    },
    async deleteNotification(item: {}) {
      // let url = adminApi.notification.delete;
      // url = url.replace("{{id}}", item._id);
      // url = url.replace("{{entity_type}}", "notif");

      // this.httpService
      //   .postRequest(url)
      //   .then((res) => {
      //     this.mySwalToast({
      //       html: res?.message ?? "با موفقیت حذف شد.",
      //     });
      //     setTimeout(() => {
      //       this.$emit("getList");
      //     }, 1000);
      //   })
      //   .catch(() => {})

      try {
        const { $api } = useNuxtApp();
        const data: resModelTwo = await $api(apis.notification.counts, {
          baseURL: logMicroServiceName(),
          method: "GET",
        });
      } catch (err) {
        
      }
    },
  },
};
</script>

<style scoped lang="scss">
.user__content {
  display: flex;
  align-items: center;
  // flex-direction: column;
  margin-right: 1em;
  width: 100%;
  .user__text_show {
    max-width: 13em;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .user__text {
    color: #1b2733;
    width: 90%;
  }
  .user__date {
    display: flex;
    justify-content: flex-start;
    font-size: 0.8rem;
    margin-top: 1em;
    color: #bac4ce;
  }

  .badge {
    padding: 0.5em;
    display: flex;
    align-items: center;
    line-height: 1.2;
    font-size: 1rem;
    background-color: transparent;
    text-shadow: 1px;
    border: 1px solid #eee;

    &-danger {
      color: red;
    }
    &-success {
      color: #28a745;
    }
  }
}
</style>
<style scoped lang="scss">
.user__item-container {
  position: relative;
  margin-bottom: 1em;

  border-radius: 1em;
  border: 1px solid #eee;
  padding: 1em;

  &.read {
    border-right-width: 3px;
    border-right-style: solid;
    border-right-color: #33eb33;
    background-color: #33eb331a;
    border-radius: 1em;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  &.unread {
    border-right-width: 3px;
    border-right-style: solid;
    border-right-color: red;
    background-color: rgba(255, 0, 0, 0.08);
    border-radius: 1em;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  // &::after {
  // content: "";
  // border-bottom: 1px solid #f1f1f1;
  // width: 90%;
  // position: absolute;
  // bottom: 0;
  // right: 5%;
  // }
  .user__item {
    text-align: right;
    display: flex;
    // align-items: center;
    // padding: 0.5em 0;
    margin-bottom: 0.5em;
    border-radius: 0;

    &:not(:last-child) {
      // border-bottom: 1px solid #eee;
    }

    &:nth-child(odd) {
      // background-color: #eee;
    }
    .user__pic {
      width: 5em;
      height: 5em;

      border-radius: 50%;
      overflow: hidden;
      border: 2px solid #eee;

      img {
        object-fit: cover;
        width: 100%;
        height: 100%;
      }
    }
    // .user__content {
    // margin-right: 0.5em;
    // flex: 1;

    // .user__item-head {
    // margin-left: 1.5em;
    // display: flex;
    // align-items: center;
    // justify-content: space-between;
    // }
    // }

    .user__no-pic {
      border: 2px solid #fff;
      color: white;
      font-size: 10px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      font-size: 10px;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
    }
  }

  &:hover,
  &.active {
    background-color: var(--list-background-color);

    .search-item__actions {
      // width: 6.5em;
      width: auto;

      transition: width 0.5s;
      background: #fff;
      border-radius: 0 0.5em 0.5em 0;

      .tavasi-more-vert {
        transition: all 0.2s;
        display: none;
      }
    }
  }

  .search-item__actions {
    position: absolute;
    left: 0;
    width: 1.6em;
    top: 1em;
    // overflow: hidden;
    transition: all 0.5s;
    display: flex;
    align-items: center;

    .btn {
      display: flex;
      align-items: center;
      justify-content: center;

      &:hover {
        filter: brightness(0.7);
      }

      .tavasi,
      .icon-copy2 {
        color: #adbec4;
      }
      .icon-copy2 {
        font-size: 0.8rem;
      }
    }
  }
}
</style>
