<template>
    <ul class="my-courses-navigation" v-if="navigationLength > 0">
        <li v-for="(nav, index) in navigation" class="my-courses-navigation-item" :class="nav.class" :key="index">
            <a v-if="nav" :href="nav.url" v-bind="nav.attr">
                <studip-icon :shape="nav.icon.shape" :role="nav.icon.role" :size="iconSize"></studip-icon>
            </a>
            <span v-else class="empty-slot" :style="{width: `${iconSize}px`}"></span>
        </li>
    </ul>
</template>

<script>
export default {
    name: 'my-courses-navigation',
    props: {
        navigation: Object,
        iconSize: {
            type: Number,
            required: false,
            default: 24,
        },
    },
    computed: {
        navigationLength () {
            return Object.keys(this.navigation).length;
        }
    }
}
</script>

<style lang="scss">
@use '../../assets/stylesheets/mixins.scss';
$icon-padding: 3px;

.my-courses-navigation {
    list-style: none;
    margin: 0;
    margin-bottom: -10px;
    padding: 0;

    display: flex;
    flex-wrap: wrap;
}
.my-courses-navigation-item {
    margin: 0 3px 10px 0;

    a {
        display: inline-block;
        padding: $icon-padding;
    }

    &:last-child {
        margin-right: 0;
    }

    img {
        vertical-align: bottom;
    }

    .empty-slot {
        display: inline-block;
        padding-left: $icon-padding;
        padding-right: $icon-padding;
    }
}
.my-courses-navigation-important {
    $border-width: 1px;
    border: $border-width solid mixins.$red;

    a {
        padding: $icon-padding - $border-width;
    }
}
</style>