type Token = {
exp?: string;
token?: string;
}
get token(): string | null {
const logout = () => {
localStorage.removeItem('fb-token')
this.logout();
return null
}
try {
const token: Token = JSON.parse(localStorage.getItem('fb-token') || "{}")
if(token?.exp && token?.token) {
const expDate = new Date(token.exp); //как корректно взять значения из localStorage, и
//сравнить его со временем так как он здесь выводит о
if (new Date() > expDate) {
return logout()
}
return token.token;
}
}
catch (_) {
return logout()
}
return logout()
}
query getProducts($withDescription: Boolean!){
products{
id
name
price
description @include(if: $withDescription)
images
...
}
}
....
variables: {
withDescription: false
}
<component v-bind:is="movePunkts" class="formAvtr"></component>
Vue.component("menu-avtr", {
data: function() {
return {
punktsMenuAvtr: [ {text: 'Вход', tabs: "inp"}, {text: 'Регистрация', tabs: "reg"} ],
currentTab: "inp"
}
},
template: '<menu><li v-for="punkt in punktsMenuAvtr" @click="currentTab = punkt.tabs" v-bind:data-active=" currentTab === punkt.tabs ? true : false ">{{ punkt.text }}</li></menu>',
computed: {
movePunkts: function(){
return 'form-' + this.currentTab
}
}
});
Vue.component("form-inp", {
template: '<form>Вход</form>'
});
Vue.component("form-reg", {
template: '<form>Регистрация</form>'
});