From be218a5feadce032ce0241ac566c2263b36fcc12 Mon Sep 17 00:00:00 2001
From: "p.belezov"
Date: Fri, 1 Mar 2024 16:39:35 +0800
Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=20=D0=BF=D0=B8?=
=?UTF-8?q?=D1=81=D0=B0=D1=82=D1=8C=20=D1=84=D0=B8=D1=87=D1=83=20=D1=81=20?=
=?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=BB=D0=BE=D0=B0=D0=B4=D0=B5=D1=80=D0=BE?=
=?UTF-8?q?=D0=BC,=20=D0=BD=D0=BE=20vue=20dev=20tools=20=D0=BD=D0=B5=20?=
=?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D1=8E=D1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package-lock.json | 56 +++++++++++++++++++
package.json | 1 +
resources/stores/Schedule.js | 15 +++++
resources/views/Preloader/Preloader.vue | 22 ++++++++
resources/views/Preloader/PreloaderWindow.vue | 15 +++++
resources/views/Schedule.vue | 27 ++++-----
resources/views/Schedule/Links.vue | 7 ++-
resources/views/Schedule/ScheduleTable.vue | 7 ++-
resources/views/Welcome.vue | 22 +++++++-
resources/welcome.js | 9 ++-
10 files changed, 157 insertions(+), 24 deletions(-)
create mode 100644 resources/stores/Schedule.js
create mode 100644 resources/views/Preloader/Preloader.vue
create mode 100644 resources/views/Preloader/PreloaderWindow.vue
diff --git a/package-lock.json b/package-lock.json
index e4b0d56..b5d825a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,7 @@
"dependencies": {
"@mdi/font": "^7.4.47",
"axios": "^1.6.4",
+ "pinia": "^2.1.7",
"typescript": "^5.3.3",
"vue": "^3.4.14",
"vuetify": "^3.4.10"
@@ -605,6 +606,11 @@
"@vue/shared": "3.4.14"
}
},
+ "node_modules/@vue/devtools-api": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz",
+ "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA=="
+ },
"node_modules/@vue/reactivity": {
"version": "3.4.14",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.14.tgz",
@@ -906,6 +912,56 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/pinia": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+ "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0",
+ "vue-demi": ">=0.14.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
+ "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/postcss": {
"version": "8.4.33",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
diff --git a/package.json b/package.json
index 0208e13..e8c2083 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"dependencies": {
"@mdi/font": "^7.4.47",
"axios": "^1.6.4",
+ "pinia": "^2.1.7",
"typescript": "^5.3.3",
"vue": "^3.4.14",
"vuetify": "^3.4.10"
diff --git a/resources/stores/Schedule.js b/resources/stores/Schedule.js
new file mode 100644
index 0000000..8c07e3c
--- /dev/null
+++ b/resources/stores/Schedule.js
@@ -0,0 +1,15 @@
+import {defineStore} from "pinia";
+
+export const useScheduleStore = defineStore('Schedule', {
+ state: () => ({
+ fetchingDates: true,
+ fetchingTable: true,
+ fetchingLinks: true
+ }),
+ getters: {
+
+ },
+ actions: {
+
+ },
+})
diff --git a/resources/views/Preloader/Preloader.vue b/resources/views/Preloader/Preloader.vue
new file mode 100644
index 0000000..f955302
--- /dev/null
+++ b/resources/views/Preloader/Preloader.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/Preloader/PreloaderWindow.vue b/resources/views/Preloader/PreloaderWindow.vue
new file mode 100644
index 0000000..fbd1ea3
--- /dev/null
+++ b/resources/views/Preloader/PreloaderWindow.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/Schedule.vue b/resources/views/Schedule.vue
index 7d1989c..8281ee5 100644
--- a/resources/views/Schedule.vue
+++ b/resources/views/Schedule.vue
@@ -1,12 +1,10 @@
-
-
- Расписание стримов
- {{ parseDate(dates[0].current_date) }} - {{ parseDate(dates[1].current_date) }}
-
- Ссылочки
-
-
+
+ Расписание стримов
+ {{ parseDate(dates[0].current_date) }} - {{ parseDate(dates[1].current_date) }}
+
+ Ссылочки
+
@@ -14,6 +12,7 @@
import axios from "axios";
import ScheduleTable from "./Schedule/ScheduleTable.vue";
import Links from "./Schedule/Links.vue";
+import {useScheduleStore} from '../stores/Schedule.js';
export default {
name: "Schedule",
@@ -30,20 +29,16 @@ export default {
mounted() {
axios
.get('/api/v1/dates')
- .then(response => (this.dates = response.data));
+ .then(response => {
+ this.dates = response.data;
+ useScheduleStore().fetchingDates = false;
+ });
}
}
diff --git a/resources/welcome.js b/resources/welcome.js
index a36974b..e93cac9 100644
--- a/resources/welcome.js
+++ b/resources/welcome.js
@@ -1,5 +1,6 @@
import './js/bootstrap';
-import {createApp} from 'vue'
+import { createApp } from 'vue'
+import { createPinia } from 'pinia'
import App from './views/Welcome.vue'
import { createVuetify } from 'vuetify'
import 'vuetify/styles'
@@ -7,9 +8,11 @@ import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
import '@mdi/font/css/materialdesignicons.css'
+const pinia = createPinia();
+
const vuetify = createVuetify({
components,
directives
-})
+});
-createApp(App).use(vuetify).mount("#app")
+createApp(App).use(vuetify).use(pinia).mount("#app");