Skip to content
This repository was archived by the owner on May 20, 2024. It is now read-only.

Commit 08e2c9d

Browse files
Philip SnowPhilip Snow
Philip Snow
authored and
Philip Snow
committed
menu error + menu in layout
1 parent e7a33d6 commit 08e2c9d

13 files changed

+49
-24
lines changed

.DS_Store

0 Bytes
Binary file not shown.

components/.DS_Store

0 Bytes
Binary file not shown.

components/HeaderPrismic.vue

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<template>
22
<header class="site-header">
3+
<p v-if="$store.state.menu === 'Please create a menu document'" class="logo">{{ $store.state.menu }}</p>
34
<nuxt-link to="/" class="logo">{{ $prismic.asText($store.state.menu.title) }}</nuxt-link>
45
<nav>
56
<ul>

layouts/.DS_Store

6 KB
Binary file not shown.

layouts/default.vue

+3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
<template>
22
<div>
3+
<header-prismic/>
34
<nuxt />
45
<footer-prismic/>
56
</div>
67
</template>
78

89
<script>
10+
import HeaderPrismic from '~/components/HeaderPrismic.vue'
911
import FooterPrismic from '~/components/FooterPrismic.vue'
1012
1113
export default {
1214
components: {
15+
HeaderPrismic,
1316
FooterPrismic
1417
},
1518
head () {

layouts/error.vue

-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<template>
22
<div>
3-
<!-- Vue tag to add header component -->
4-
<header-prismic/>
53
<div class="container">
64
<h1>Page not found</h1>
75
<p>Sorry we were unable to find the page you are looking for.</p>
@@ -11,14 +9,7 @@
119
</template>
1210

1311
<script>
14-
import HeaderPrismic from '../components/HeaderPrismic.vue'
15-
import FooterPrismic from '~/components/FooterPrismic.vue'
16-
1712
export default {
1813
name: 'NotFound',
19-
components: {
20-
HeaderPrismic,
21-
FooterPrismic
22-
}
2314
}
2415
</script>

layouts/homepage.vue

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<template>
2+
<div class="homepage">
3+
<header-prismic/>
4+
<nuxt />
5+
<footer-prismic/>
6+
</div>
7+
</template>
8+
9+
<script>
10+
import HeaderPrismic from '~/components/HeaderPrismic.vue'
11+
import FooterPrismic from '~/components/FooterPrismic.vue'
12+
13+
export default {
14+
components: {
15+
HeaderPrismic,
16+
FooterPrismic
17+
},
18+
head () {
19+
return {
20+
title: 'Prismic Nuxt.js Multi Page Website',
21+
}
22+
},
23+
// Called before rendering the layout (even for error page)
24+
async middleware({ store, $prismic }) {
25+
await store.dispatch('fetchMenu', $prismic)
26+
}
27+
}
28+
</script>

pages/.DS_Store

6 KB
Binary file not shown.

pages/index.vue

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
<template>
2-
<section class="homepage">
3-
<!-- Vue tag to add header component -->
4-
<header-prismic/>
2+
<section>
53
<!-- Banner component -->
64
<homepage-banner :banner="banner"/>
75
<!-- Slices block component -->
@@ -11,16 +9,15 @@
119

1210
<script>
1311
// Imports for all components
14-
import HeaderPrismic from '~/components/HeaderPrismic.vue'
1512
import HomepageBanner from '~/components/HomepageBanner.vue'
1613
import SlicesBlock from '~/components/SlicesBlock.vue'
1714
1815
export default {
1916
name: 'Home',
17+
layout: 'homepage',
2018
components: {
21-
HeaderPrismic,
2219
HomepageBanner,
23-
SlicesBlock,
20+
SlicesBlock
2421
},
2522
head () {
2623
return {

pages/page/.DS_Store

6 KB
Binary file not shown.

pages/page/_uid.vue

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
<template>
2-
<section class="page">
3-
<!-- Vue tag to add header component -->
4-
<header-prismic/>
2+
<section>
53
<!-- Slices block component -->
64
<slices-block :slices="slices"/>
75
</section>
86
</template>
97

108
<script>
11-
// Imports for all components
12-
import HeaderPrismic from '~/components/HeaderPrismic.vue'
9+
// Imports for Prismic Slice components
1310
import SlicesBlock from '~/components/SlicesBlock.vue'
1411
1512
export default {
1613
name: 'page',
1714
components: {
18-
HeaderPrismic,
19-
SlicesBlock,
15+
SlicesBlock
2016
},
2117
head () {
2218
return {

store/.DS_Store

6 KB
Binary file not shown.

store/index.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,22 @@ export const state = () => ({
55
export const mutations = {
66
SET_MENU(state, menu) {
77
state.menu = menu
8+
},
9+
SET_ERROR(state, error) {
10+
state.menu = error
811
}
912
}
1013

1114
export const actions = {
1215
async fetchMenu({ commit }, $prismic) {
13-
const menu = (await $prismic.api.getSingle('menu')).data
16+
try {
17+
const menu = (await $prismic.api.getSingle('menu')).data
1418

15-
commit('SET_MENU', menu)
19+
commit('SET_MENU', menu)
20+
} catch (e) {
21+
const error = 'Please create a menu document'
22+
23+
commit('SET_ERROR', error);
24+
}
1625
}
1726
}

0 commit comments

Comments
 (0)