Explorar o código

Use admin store to display menu items

sbkwgh %!s(int64=8) %!d(string=hai) anos
pai
achega
b271e771c8
Modificáronse 3 ficheiros con 35 adicións e 6 borrados
  1. 16 4
      src/components/routes/Admin.vue
  2. 2 0
      src/main.js
  3. 17 2
      src/store/modules/admin.js

+ 16 - 4
src/components/routes/Admin.vue

@@ -1,9 +1,14 @@
 <template>
 	<div class='route_container route_container--admin'>
 		<div class='admin_menu'>
-			<div class='admin_menu__item'>Dashboard</div>
-			<div class='admin_menu__item admin_menu__item--selected'>Settings</div>
-			<div class='admin_menu__item'>Users</div>
+			<div
+				class='admin_menu__item'
+				v-for='(item, index) in menuItems'
+				:class="{'admin_menu__item--selected': index === selected}"
+				@click='$router.push("/admin/" + item.route)'
+			>
+				{{item.name}}
+			</div>
 		</div>
 		<div class='admin_page'>
 			<router-view></router-view>
@@ -15,7 +20,14 @@
 	export default {
 		name: 'index',
 		components: {},
-		computed: {},
+		computed: {
+			menuItems () {
+				return this.$store.state.admin.menuItems
+			},
+			selected () {
+				return this.$store.state.admin.selected
+			}
+		},
 		methods: {}
 	}
 </script>

+ 2 - 0
src/main.js

@@ -10,6 +10,8 @@ import Category from './components/routes/Category'
 import Thread from './components/routes/Thread'
 import ThreadNew from './components/routes/ThreadNew'
 import Admin from './components/routes/Admin'
+import Admin from './components/routes/Admin'
+import Admin from './components/routes/Admin'
 
 import onResize from './assets/js/flexBoxGridCorrect'
 

+ 17 - 2
src/store/modules/admin.js

@@ -1,10 +1,25 @@
-const state = {}
+const state = {
+	menuItems: [
+		{ name: 'Dashboard', route: 'dashboard' }, 
+		{ name: 'Settings', route: 'settings' },
+		{ name: 'Users', route: 'users' }
+	],
+	selected: 0
+}
 
 const getters = {}
 
 const actions = {}
 
-const mutations = {}
+const mutations = {
+	setMenuItem (state, route) {
+		state.menuItems.forEach((item, index) => {
+			if(item.route === route) {
+				state.selected = index
+			}
+		})
+	}
+}
 
 export default {
 	state,