<template>
    <div id="modal-root" :style="theme" />
    <div class="app" @mousemove="updateMouse" :style="theme" :class="{ useHeader }">
        <Nav v-if="useHeader" />
        <Tabs />
        <TPS v-if="showTPS" />
        <GameOverScreen />
        <NaNScreen />
    </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import modInfo from "./data/modInfo.json";
import themes from "./data/themes";
import settings from "./game/settings";
import "./main.css";
import { mapSettings } from "./util/vue";

export default defineComponent({
    name: "App",
    data() {
        return { useHeader: modInfo.useHeader };
    },
    computed: {
        ...mapSettings(["showTPS"]),
        theme() {
            return themes[settings.theme].variables;
        }
    },
    methods: {
        updateMouse(/* event */) {
            // TODO use event to update mouse position for particles
        }
    }
});
</script>

<style scoped>
.app {
    background-color: var(--background);
    color: var(--foreground);
    display: flex;
    flex-flow: column;
    min-height: 100%;
    height: 100%;
}

#modal-root {
    position: absolute;
    min-height: 100%;
    height: 100%;
}
</style>