<template>
  <ui-group-option class="sign-guide">
    <div class="info">
      <div class="guide-cover">
        <span class="img"></span>
        <!-- @click="playSceneGuide(paths, undefined, true)" -->
        <ui-icon type="preview" class="icon" ctrl v-if="path.points.length" />
      </div>
      <div>
        <p>{{ path.name }}</p>
      </div>
    </div>
    <div class="actions" v-if="edit">
      <ui-more
        :options="menus"
        style="margin-left: 20px"
        @click="(action: keyof typeof actions) => actions[action]()"
      />
    </div>
  </ui-group-option>
</template>

<script setup lang="ts">
import { Path } from "@/store";
import { playSceneGuide } from "@/sdk";

const props = withDefaults(defineProps<{ path: Path; edit?: boolean }>(), {
  edit: true,
});

const emit = defineEmits<{
  (e: "delete"): void;
  (e: "edit"): void;
}>();

const menus = [
  { label: "编辑", value: "edit" },
  { label: "删除", value: "delete" },
];
const actions = {
  edit: () => emit("edit"),
  delete: () => emit("delete"),
};
</script>

<style lang="scss" scoped>
.sign-guide {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--colors-border-color);
  &:first-child {
    border-top: 1px solid var(--colors-border-color);
  }

  .info {
    flex: 1;

    display: flex;
    align-items: center;

    .guide-cover {
      position: relative;
      &::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.2);
      }

      .icon {
        position: absolute;
        z-index: 1;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        font-size: 16px;
      }

      .img {
        width: 48px;
        height: 48px;
        object-fit: cover;
        border-radius: 4px;
        overflow: hidden;
        background-color: rgba(255, 255, 255, 0.6);
        display: block;
      }
    }

    div {
      margin-left: 10px;

      p {
        color: #fff;
        font-size: 14px;
        margin-bottom: 6px;
      }
    }
  }

  .actions {
    flex: none;
  }
}
</style>
