<template>
    <el-popover ref="addPopper" :width="470" trigger="click" popper-class="add-popper" :teleported="false" :show-arrow="true" @show="catState(true)" @hide="catState(false)" v-model:visible="state" :placement="type == 'bottom' ? 'top' : 'bottom'">
        <template #reference>
            <div class="respond-add flexcenter" :class="{ 'angle': state }">
                <img class="respond-add-icon" src="../assets/img/plus-sign.svg" />
            </div>
        </template>

        <div class="respond-list-box">
            <div class="respond-list-title">选择你的回应：</div>
            <div class="respond-list">
                <template v-for="item in riposteoptions" :key="item">
                    <div class="respond-item flexcenter" v-for="(item, key) in item.data" :key="key">
                        <div class="respond-item-key" v-html="jointriposte(key)" @click="selectEomji(key)"></div>
                    </div>
                </template>
            </div>
        </div>
    </el-popover>
</template>

<script setup>
let props = defineProps({
    type: Boolean,
})

let state = ref(false)

let riposteoptions = inject("riposteoptions")
let selectEomjiPop = inject("selectEomjiPop")
let jointriposte = inject("jointriposte")

const emit = defineEmits(["update:respondShowState"])

const catState = value => {
    state.value = value
    if (props.type == "bottom") {
        emit("update:respondShowState", value)
    }
}

const addPopper = ref(null)

const selectEomji = key => {
    selectEomjiPop(key)
    addPopper.value.hide()
}
</script>

<style lang="less" scoped>
.respond-add {
    width: 30px;
    height: 30px;
    background-color: rgba(98, 177, 255, 1);
    border-radius: 50%;
    cursor: pointer;
    position: relative;
    // margin: 5px;

    &.angle {
        &::after {
            // content: "";
            background: #f6f6f6;
            border: 1px solid #e4e7ed;
            border-bottom-color: transparent !important;
            border-right-color: transparent !important;
            border-top-left-radius: 2px;
            width: 10px;
            height: 10px;
            position: absolute;
            bottom: -17px;
            left: 50%;
            transform: translateX(-50%) rotate(45deg);
            z-index: 3000;
        }
    }

    .respond-add-icon {
        width: 14px;
        height: 14px;
    }
}
</style>

<style lang="less">
.el-popover.el-popper.add-popper {
    padding: 0;
    background: #f6f6f6;
    border: 1px solid #ebebeb;
    border-radius: 10px;
    box-shadow: none;
    // left: 0 !important;
}
.el-popper.add-popper.is-light .el-popper__arrow::before {
    background: #f6f6f6;
}
</style>
