<template>
    <div
        class="container"
        :class="theme"
    >
        <Header />

        <div class="content">
            <!-- key forces rerender when new and old path use same component -->
            <router-view :key="$route.fullPath" />
        </div>
    </div>
</template>

<script>
import { mapState } from 'vuex';

import Header from '../header/header.vue';

function theme(state) {
    return state.ui.theme;
}

export default {
    components: {
        Header,
    },
    computed: {
        ...mapState({
            theme,
        }),
    },
};
</script>

<style lang="scss">
@import 'theme';

.container {
    background: var(--background-dim);
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    overflow-y: auto;
}

.content-inner {
    flex-grow: 1;
    padding: 1rem;
    overflow-y: auto;
}
</style>