151 lines
3.8 KiB
TypeScript
Executable File
151 lines
3.8 KiB
TypeScript
Executable File
import { useRoute, useRouter } from 'vue-router'
|
|
import { useQuasar } from 'quasar'
|
|
import { BannerCookies } from '@/components/BannerCookies'
|
|
import { useI18n } from '@src/boot/i18n'
|
|
import { useGlobalStore } from '@store/globalStore'
|
|
import { useUserStore } from '@store/UserStore'
|
|
import { MyHeader } from '@/components/MyHeader'
|
|
import { MyFooter } from '@/components/MyFooter'
|
|
import { CFirstPageApp } from '@/components/CFirstPageApp'
|
|
import { computed, onMounted, ref, watch } from 'vue'
|
|
import { CProvaPao } from '@/components/CProvaPao'
|
|
import { tools } from '@store/Modules/tools'
|
|
|
|
import 'animate.css';
|
|
|
|
export default {
|
|
components: {
|
|
appHeader: MyHeader,
|
|
appFooter: MyFooter,
|
|
CFirstPageApp,
|
|
CProvaPao,
|
|
BannerCookies, /* , CPreloadImages */
|
|
},
|
|
setup() {
|
|
const route = useRoute()
|
|
|
|
const backgroundColor = 'whitesmoke'
|
|
const $q = useQuasar()
|
|
const userStore = useUserStore()
|
|
const $router = useRouter()
|
|
const $route = useRoute()
|
|
const globalStore = useGlobalStore()
|
|
const { t } = useI18n();
|
|
|
|
const finishLoading = computed(() => globalStore.finishLoading)
|
|
|
|
const site = computed(() => globalStore.site)
|
|
|
|
const darkcookie = ref(false)
|
|
|
|
watch(() => finishLoading.value, (newval: boolean, oldval: boolean) => {
|
|
// console.log('watch finished', newval)
|
|
if (newval) {
|
|
tools.updateFonts()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
const listaRoutingNoLogin = ['/vreg?', '/offline']
|
|
|
|
function meta() {
|
|
return {
|
|
title: t('msg.myAppName'),
|
|
keywords: [{ name: 'keywords', content: 'associazione shen, centro olistico lugo' },
|
|
{ name: 'description', content: t('msg.myAppDescription') }],
|
|
// equiv: { 'http-equiv': 'Content-Type', 'content': 'text/html; charset=UTF-8' }
|
|
}
|
|
}
|
|
|
|
function isScrolledIntoView(el: any) {
|
|
let rect = el.getBoundingClientRect()
|
|
let elemTop = rect.top
|
|
let elemBottom = rect.bottom
|
|
|
|
let isVisible = elemTop < window.innerHeight && elemBottom >= 0
|
|
return isVisible
|
|
}
|
|
|
|
function scroll() {
|
|
window.onscroll = () => {
|
|
let scrolledTo = document.querySelector('.replace-with-your-element')
|
|
|
|
if (scrolledTo && isScrolledIntoView(scrolledTo)) {
|
|
console.log('scrolled')
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function mounted() {
|
|
console.log('app mounted')
|
|
darkcookie.value = tools.getCookie('darkmode', false, false, false) === '-1'
|
|
|
|
globalStore.homescreen = $route.query.homescreen ? $route.query.homescreen : ''
|
|
|
|
scroll()
|
|
}
|
|
|
|
|
|
|
|
async function created() {
|
|
tools.initprompt()
|
|
|
|
tools.checkApp()
|
|
|
|
try {
|
|
if (process.env.DEV) {
|
|
console.info('SESSIONE IN SVILUPPO ! (DEV)')
|
|
// console.info(process.env)
|
|
}
|
|
if (tools.isTest() && !process.env.DEV) {
|
|
console.info('SESSIONE IN TEST ! (TEST)')
|
|
} else {
|
|
if (process.env.PROD) {
|
|
console.info('SESSIONE IN PRODUZIONE!')
|
|
// console.info(process.env)
|
|
}
|
|
}
|
|
|
|
|
|
// Make autologin only if some routing
|
|
|
|
// console.log('window.location.href', window.location.href)
|
|
|
|
let chiamaautologin = true
|
|
listaRoutingNoLogin.forEach((mystr) => {
|
|
if (window.location.href.includes(mystr)) {
|
|
chiamaautologin = false
|
|
}
|
|
})
|
|
|
|
if (chiamaautologin) {
|
|
// console.log('CHIAMA autologin_FromLocalStorage')
|
|
await userStore.autologin_FromLocalStorage($router, $q)
|
|
} else {
|
|
globalStore.finishLoading = true
|
|
}
|
|
|
|
tools.updateFonts()
|
|
|
|
} catch (e) {
|
|
globalStore.finishLoading = true
|
|
}
|
|
|
|
// Calling the Server for updates ?
|
|
// Check the verified_email
|
|
}
|
|
|
|
onMounted(mounted)
|
|
|
|
created()
|
|
|
|
return {
|
|
finishLoading,
|
|
darkcookie,
|
|
}
|
|
},
|
|
}
|