diff --git a/package.json b/package.json index 2fe17aea..3b5b531a 100644 --- a/package.json +++ b/package.json @@ -27,10 +27,10 @@ "@coreui/vue-chartjs": "^3.0.0", "@popperjs/core": "^2.11.8", "chart.js": "^4.4.2", + "pinia": "^2.1.7", "simplebar-vue": "^2.3.3", "vue": "^3.4.21", - "vue-router": "^4.3.0", - "vuex": "^4.1.0" + "vue-router": "^4.3.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", diff --git a/src/App.vue b/src/App.vue index 9a8eaeca..b06f287b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,10 +1,13 @@ diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue index 46e2b842..fda96a89 100644 --- a/src/components/AppHeader.vue +++ b/src/components/AppHeader.vue @@ -1,11 +1,14 @@ diff --git a/src/main.js b/src/main.js index 5afc2d2d..bf8b8e5f 100644 --- a/src/main.js +++ b/src/main.js @@ -1,7 +1,8 @@ import { createApp } from 'vue' +import { createPinia } from 'pinia' + import App from './App.vue' import router from './router' -import store from './store' import CoreuiVue from '@coreui/vue' import CIcon from '@coreui/icons-vue' @@ -9,7 +10,7 @@ import { iconsSet as icons } from '@/assets/icons' import DocsExample from '@/components/DocsExample' const app = createApp(App) -app.use(store) +app.use(createPinia()) app.use(router) app.use(CoreuiVue) app.provide('icons', icons) diff --git a/src/store/index.js b/src/store/index.js deleted file mode 100644 index 1ca85549..00000000 --- a/src/store/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createStore } from 'vuex' - -export default createStore({ - state: { - sidebarVisible: '', - sidebarUnfoldable: false, - theme: 'light', - }, - mutations: { - toggleSidebar(state) { - state.sidebarVisible = !state.sidebarVisible - }, - toggleUnfoldable(state) { - state.sidebarUnfoldable = !state.sidebarUnfoldable - }, - updateSidebarVisible(state, payload) { - state.sidebarVisible = payload.value - }, - }, - actions: {}, - modules: {}, -}) diff --git a/src/stores/sidebar.js b/src/stores/sidebar.js new file mode 100644 index 00000000..28c9a044 --- /dev/null +++ b/src/stores/sidebar.js @@ -0,0 +1,17 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export const useSidebarStore = defineStore('sidebar', () => { + const visible = ref(undefined) + const unfoldable = ref(false) + + const toggleVisible = (value) => { + visible.value = value !== undefined ? value : !visible.value + } + + const toggleUnfoldable = () => { + unfoldable.value = !unfoldable.value + } + + return { visible, unfoldable, toggleVisible, toggleUnfoldable } +}) diff --git a/src/stores/theme.js b/src/stores/theme.js new file mode 100644 index 00000000..7b1a0fbc --- /dev/null +++ b/src/stores/theme.js @@ -0,0 +1,12 @@ +import { ref } from 'vue' +import { defineStore } from 'pinia' + +export const useThemeStore = defineStore('theme', () => { + const theme = ref('light') + + const toggleTheme = (_theme) => { + theme.value = _theme + } + + return { theme, toggleTheme } +})