<template>
    <ListItem
        :selected="selected"
    >
        <div class="flex flex-row w-full">
            <div
                v-if="!inEdit"
                class="w-full select-none text-left mr-1"
                @click="selectMe()"
            >
                {{ title }}
            </div>
            <input
                v-if="inEdit"
                class="w-full rounded border p-1"
                v-model="title"
                placeholder="Neues Kolloquium..."
            />
            <client-only>
                <button
                    v-if="inEdit"
                    @click="save()"
                    class="text-center text-white rounded-md select-none w-9 h-8 ml-1 bg-green-500 hover:bg-green-700 active:bg-green-900"
                >
                    ✓
                </button>
                <button
                    v-if="!inEdit"
                    @click="edit()"
                    class="text-center text-white rounded-md select-none w-9 h-8 ml-1 bg-yellow-500 hover:bg-yellow-700 active:bg-yellow-900"
                >
                    ✎
                </button>            
                <button
                    class="text-center text-white rounded-md select-none w-9 h-8 ml-1 bg-red-500 hover:bg-red-700 active:bg-red-900"
                    @click="deleteMe()"
                >
                    X
                </button>
            </client-only>
        </div>
    </ListItem>
</template>

<script>
import ListItem from '~/components/ListItem'

export default {
    components: {
        ListItem
    },
    props: {
        title: {
            type: String,
            required: true,
        },
        selected: {
            type: Boolean,
            required: false,
            default: false,
        },
        inEdit: {
            type: Boolean,
            required: false,
            default: false
        },
    },
    methods: {
        save() {
            this.$emit("update:inEdit", {inEdit: false, title: this.title});
        },
        edit() {
            this.$emit("update:inEdit", {inEdit: true, title: this.title});
        },
        deleteMe() {
            this.$emit("deleteKolloquium")
        },
        selectMe() {
            this.$emit("selectKolloquium")
        }
    }
}
</script>