<template>
<div id="app" style="padding-bottom: 50px">
<div>
<b-navbar toggleable="lg" type="dark" variant="dark">
<b-container>
<b-navbar-brand to="/">
<img
src="@/assets/logo.svg"
class="d-inline-block align-top"
width="30"
height="30"
alt="logo"
/>
{{ config.appName }}
</b-navbar-brand>
<b-collapse id="nav-text-collapse" is-nav>
<b-navbar-nav>
<b-nav-text>{{ config.appDescription }}</b-nav-text>
</b-navbar-nav>
</b-collapse>
<b-navbar-nav class="ml-auto">
<b-collapse id="nav-collapse" is-nav>
<b-navbar-nav>
<b-nav-item
href="https://github.com/sundowndev/phoneinfoga"
target="_blank"
>GitHub</b-nav-item
>
<b-nav-item
href="https://sundowndev.github.io/phoneinfoga/resources/"
target="_blank"
>Resources</b-nav-item
>
<b-nav-item
href="https://sundowndev.github.io/phoneinfoga/"
target="_blank"
>Documentation</b-nav-item
>
</b-navbar-nav>
</b-collapse>
</b-navbar-nav>
</b-container>
</b-navbar>
</div>
<b-container class="my-md-3">
<b-row>
<b-col cols="12">
<b-alert v-if="isDemo" show variant="warning" fade
>Welcome to the demo of PhoneInfoga web client.</b-alert
>
<b-alert
v-for="(err, i) in errors"
v-bind:key="i"
show
variant="danger"
dismissible
fade
>{{ err.message }}</b-alert
>
<router-view />
</b-col>
</b-row>
</b-container>
<b-navbar
toggleable="lg"
type="light"
variant="light"
fixed="bottom"
v-if="version !== ''"
>
<b-container>
<b-navbar-nav class="ml-auto">
<b-collapse id="nav-collapse" is-nav>
<b-navbar-nav>
<b-nav-item
href="https://github.com/sundowndev/phoneinfoga/releases"
target="_blank"
>{{ config.appName }} {{ version }}</b-nav-item
>
</b-navbar-nav>
</b-collapse>
</b-navbar-nav>
</b-container>
</b-navbar>
<script
v-if="isDemo"
type="application/javascript"
defer
data-domain="demo.phoneinfoga.crvx.fr"
src="https://analytics.crvx.fr/js/script.js"
></script>
</div>
</template>
<script lang="ts">
import Vue from "vue";
import { mapState } from "vuex";
import config from "@/config";
import axios, { AxiosResponse } from "axios";
type HealthResponse = { success: boolean; version: string; demo: boolean };
export default Vue.extend({
data: () => ({ config, version: "", isDemo: false }),
computed: {
...mapState(["number", "errors"]),
},
async created() {
const res: AxiosResponse<HealthResponse> = await axios.get(config.apiUrl);
this.version = res.data.version;
this.isDemo = res.data.demo;
},
});
</script>