Skip to content

Instantly share code, notes, and snippets.

@andrejsharapov
Created September 18, 2024 09:20
Show Gist options
  • Select an option

  • Save andrejsharapov/1076dfe1288d2665a8018bfa51ec980d to your computer and use it in GitHub Desktop.

Select an option

Save andrejsharapov/1076dfe1288d2665a8018bfa51ec980d to your computer and use it in GitHub Desktop.
vue save/read to localStorage (event-banner as v-snackbar)
export default {
data: () => ({
eventForClientBanner: true,
eventForClientDate: null,
}),
mounted() {
if (localStorage.eventForClientBanner) {
this.eventForClientBanner = JSON.parse(localStorage.getItem('eventForClientBanner'));
this.eventForClientDate = JSON.parse(localStorage.getItem('eventForClientDate'));
if (new Date() > new Date(this.eventForClientDate) || new Date() >= new Date('2024-09-24T09:00:00')) {
localStorage.removeItem('eventForClientBanner');
localStorage.removeItem('eventForClientDate');
}
if (new Date() >= new Date('2024-09-24T09:00:00')) {
this.eventForClientBanner = false;
}
}
},
methods: {
eventForClient(state) {
const now = new Date();
this.eventForClientBanner = state;
// TEST (minutes) this.eventForClientDate = new Date(now.setMinutes(now.getMinutes() + 1));
this.eventForClientDate = now.addDays(1);
// TEST (minutes) localStorage.setItem('eventForClientDate', JSON.stringify(new Date(now.setMinutes(now.getMinutes() + 1))));
localStorage.setItem('eventForClientDate', JSON.stringify(now.addDays(1)));
localStorage.setItem('eventForClientBanner', JSON.stringify(state));
},
},
}
<template>
<v-snackbar v-model="eventForClientBanner" :timeout="-1">
<v-list-item to="" @click="eventForClient(false)">
<!-- event content -->
<v-btn icon @click.stop.prevent="eventForClient(false)">
<v-icon> mdi-close </v-icon>
</v-btn>
</v-list-item>
</v-snackbar>
</template>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment