<template>
    <div>
        <section class="pending-pane">
            <div class="actions">
                <a class="new-order" href="#new-order">New</a
                ><a class="new-order" href="#credits">Add Credits</a>
            </div>
            <h4>Pending Orders</h4>
            <ul>
                <template v-bind:key="order.id" v-for="order in orders">
                    <div class="pending-item" v-if="order.status == 'pending'">
                        <div class="pending-heading">
                            <li @click="togglePending($event)">
                                {{ order.service.name }} ({{
                                    order.updated_at
                                }})
                            </li>
                            <img
                                class="chevron"
                                src="../../images/chevron-down.svg"
                                alt=""
                            />
                        </div>
                        <div class="pending-content">
                            <p>
                                ID: {{ order.id }}<br />URL: {{ order.url
                                }}<br />Quantity: {{ order.quantity
                                }}<br />Note: {{ order.note }}
                            </p>
                        </div>
                    </div>
                </template>
            </ul>
        </section>
        <div class="info-grey">
            <p>Orders are typically completed within 1-5 days.</p>
            <div></div>
        </div>
        <section class="history-pane">
            <h4>Order History</h4>

            <div class="table-scroller">
                <table>
                    <thead>
                        <th>Date</th>
                        <th>ID</th>
                        <th>Name</th>
                        <th>Status</th>
                        <th>Quantity</th>
                    </thead>
                    <tbody>
                        <tr
                            v-bind:key="order.id"
                            v-for="order in orders.slice(
                                historyPage * 10 - 10,
                                historyPage * 10
                            )"
                        >
                            <td>{{ order.updated_at }}</td>
                            <td>{{ order.id }}</td>
                            <td>{{ order.service.name }}</td>
                            <td :class="order.status" class="status">
                                <span>{{
                                    order.status.charAt(0).toUpperCase() +
                                    order.status.slice(1)
                                }}</span>
                            </td>
                            <td>{{ order.quantity }}</td>
                            <td><eye @click="select(order)"></eye></td>
                        </tr>
                    </tbody>
                </table>
            </div>

            <img
                @click="moveHistory(false)"
                class="nav-btn left"
                src="../../images/arrow-left-circle-fill.svg"
                alt=""
            />
            <p class="nav-legend">
                {{ historyPage }}/{{ Math.ceil(orders.length / 10) }}
            </p>
            <img
                @click="moveHistory(true)"
                class="nav-btn right"
                src="../../images/arrow-right-circle-fill.svg"
                alt=""
            />
        </section>

        <order-item
            v-if="selected"
            @close="close"
            :selected="selected"
            :token="token"
            @change-url="(url) => (selected.url = url)"
        ></order-item>
    </div>
</template>

<script>
import Eye from "../icons/eye-fill.vue";
import OrderItem from "./order-item.vue";

function togglePending(event) {
    event.target.parentNode.parentNode.classList.toggle("selected");
}

function moveHistory(forward) {
    if (forward) {
        this.historyPage += 1;
    } else {
        this.historyPage -= 1;
    }
    if (this.historyPage < 1) {
        this.historyPage = 1;
        return;
    } else if (this.historyPage > this.orders.length / 10 + 1) {
        this.historyPage -= 1;
        return;
    }
}

function close() {
    this.selected = null;
}

function select(order) {
    this.selected = order;
}

export default {
    components: { Eye, OrderItem },
    data() {
        return { historyPage: 1, selected: null };
    },
    methods: {
        togglePending,
        moveHistory,
        close,
        select,
    },
    props: ["orders", "token"],
};
</script>