<template>
    <div class="column is-one-third">
        <div class="fixed-right">
            <table v-show="mostrar_tabla" class="table is-striped is-bordered tabla-chismosa is-narrow">
                <thead>
                <tr>
                    <th>Producto</th>
                    <th>Cantidad</th>
                    <th><abbr title="Precio Total">$</abbr></th>
                </tr>
                </thead>
                <tfoot>
                <tr>
                    <th><abbr title="Bonos de Transporte">B. Transporte</abbr></th>
                    <th class="has-text-right">{{ cantidad_transporte }}</th>
                    <th class="has-text-right">{{ total_transporte }}</th>
                </tr>
                <tr v-if="devoluciones_habilitadas">
                    <th><p>Devoluciones</p></th>
                    <td>
                        <abbr :title="devoluciones_notas">{{ notas_abreviadas }}</abbr>
                        <button @click.capture="toggleDevoluciones()" class="button is-warning is-small">
                            <span class="icon">
                                <i class="fas fa-edit"></i>
                            </span>
                        </button>
                    </td>
                    <th class="has-text-right">-{{ devoluciones_total }}</th>
                </tr>
                <tr>
                    <th>Total total</th>
                    <th></th>
                    <th class="has-text-right">{{ total }}</th>
                </tr>
                </tfoot>
                <tbody>
                <producto-row v-for="producto in productos" :producto="producto" :key="producto.id"></producto-row>
                </tbody>
            </table>
            <p class="has-text-centered" v-show="!mostrar_tabla">
                Compa, todavĂ­a no agregaste nada a la chismosa.
            </p>
        </div>
    </div>
</template>

<script>
import ProductoRow from "./ProductoRow.vue";
import { mapMutations, mapState } from "vuex";

export default {
    components: { ProductoRow },
    computed: {
        ...mapState('barrio',["devoluciones_habilitadas"]),
        ...mapState('pedido',[
            "productos",
            "total",
            "total_transporte",
            "cantidad_transporte",
            "devoluciones_total",
            "devoluciones_notas",
        ]),
        notas_abreviadas() {
            return this.devoluciones_notas.substring(0, 15) + (this.devoluciones_notas.length > 15 ? "..." : "");
        },
        mostrar_tabla() {
            return this.productos?.length !== 0;
        },
    },
    methods: {
        ...mapMutations('ui',["toggleDevoluciones"]),
    },
}
</script>

<style>
.tabla-chismosa {
    width: 100%;
}

.fixed-right {
    position: fixed;
    overflow-y: auto;
    max-height: 81vh;
    margin-right: 20px;
}
</style>