Working on page pre-rendering
This commit is contained in:
parent
3638ef8cfb
commit
d1d8e62abb
|
@ -3,8 +3,6 @@ export default defineNuxtRouteMiddleware((to, from) => {
|
||||||
|
|
||||||
if (!authStore.check) {
|
if (!authStore.check) {
|
||||||
useCookie('intended_url').value = to.path
|
useCookie('intended_url').value = to.path
|
||||||
|
|
||||||
console.log('redirecting to login')
|
|
||||||
return navigateTo({ name: 'login' })
|
return navigateTo({ name: 'login' })
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,27 +1,6 @@
|
||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
|
||||||
import opnformConfig from "./opnform.config";
|
import opnformConfig from "./opnform.config";
|
||||||
|
import sitemap from "./sitemap";
|
||||||
const modules = [
|
|
||||||
'@pinia/nuxt',
|
|
||||||
'@vueuse/nuxt',
|
|
||||||
'@vueuse/motion/nuxt'
|
|
||||||
]
|
|
||||||
|
|
||||||
if (opnformConfig.sentry_dsn) {
|
|
||||||
modules.push('@nuxtjs/sentry')
|
|
||||||
}
|
|
||||||
|
|
||||||
const preRenderedRoutes = [
|
|
||||||
'/',
|
|
||||||
'/ai-form-builder',
|
|
||||||
'/login',
|
|
||||||
'/register',
|
|
||||||
// '/privacy-policy',
|
|
||||||
// '/terms-conditions',
|
|
||||||
'/templates',
|
|
||||||
'/templates/*',
|
|
||||||
].reduce((acc, curr) => (acc[curr] = {prerender: true}, acc), {});
|
|
||||||
|
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
devtools: {enabled: true},
|
devtools: {enabled: true},
|
||||||
|
@ -30,7 +9,9 @@ export default defineNuxtConfig({
|
||||||
'@pinia/nuxt',
|
'@pinia/nuxt',
|
||||||
'@vueuse/nuxt',
|
'@vueuse/nuxt',
|
||||||
'@vueuse/motion/nuxt',
|
'@vueuse/motion/nuxt',
|
||||||
'nuxt3-notifications'
|
'nuxt3-notifications',
|
||||||
|
'nuxt-simple-sitemap',
|
||||||
|
// ... opnformConfig.sentry_dsn ? ['@nuxtjs/sentry'] : [],
|
||||||
],
|
],
|
||||||
postcss: {
|
postcss: {
|
||||||
plugins: {
|
plugins: {
|
||||||
|
@ -40,6 +21,9 @@ export default defineNuxtConfig({
|
||||||
autoprefixer: {},
|
autoprefixer: {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
experimental: {
|
||||||
|
inlineRouteRules: true
|
||||||
|
},
|
||||||
sentry: {
|
sentry: {
|
||||||
dsn: opnformConfig.sentry_dsn,
|
dsn: opnformConfig.sentry_dsn,
|
||||||
},
|
},
|
||||||
|
@ -59,5 +43,5 @@ export default defineNuxtConfig({
|
||||||
},
|
},
|
||||||
'~/components',
|
'~/components',
|
||||||
],
|
],
|
||||||
routeRules: { ... preRenderedRoutes}
|
sitemap
|
||||||
})
|
})
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -13,6 +13,7 @@
|
||||||
"@nuxt/devtools": "latest",
|
"@nuxt/devtools": "latest",
|
||||||
"autoprefixer": "^10.4.16",
|
"autoprefixer": "^10.4.16",
|
||||||
"nuxt": "^3.8.2",
|
"nuxt": "^3.8.2",
|
||||||
|
"nuxt-simple-sitemap": "^4.2.3",
|
||||||
"postcss": "^8.4.32",
|
"postcss": "^8.4.32",
|
||||||
"tailwindcss": "^3.3.6",
|
"tailwindcss": "^3.3.6",
|
||||||
"vue": "^3.3.10",
|
"vue": "^3.3.10",
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
"fuse.js": "^6.4.6",
|
"fuse.js": "^6.4.6",
|
||||||
"js-sha256": "^0.9.0",
|
"js-sha256": "^0.9.0",
|
||||||
"libphonenumber-js": "^1.10.44",
|
"libphonenumber-js": "^1.10.44",
|
||||||
|
"nuxt3-notifications": "^1.1.9",
|
||||||
"object-to-formdata": "^4.5.1",
|
"object-to-formdata": "^4.5.1",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"prismjs": "^1.24.1",
|
"prismjs": "^1.24.1",
|
||||||
|
@ -49,7 +51,6 @@
|
||||||
"vue-notion": "^3.0.0-beta.1",
|
"vue-notion": "^3.0.0-beta.1",
|
||||||
"vue-signature-pad": "^3.0.2",
|
"vue-signature-pad": "^3.0.2",
|
||||||
"vue3-editor": "^0.1.1",
|
"vue3-editor": "^0.1.1",
|
||||||
"nuxt3-notifications": "^1.1.9",
|
|
||||||
"vuedraggable": "next"
|
"vuedraggable": "next"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -496,16 +496,18 @@
|
||||||
<script>
|
<script>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useAuthStore } from '../stores/auth'
|
import { useAuthStore } from '../stores/auth'
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
import SeoMeta from '../mixins/seo-meta.js'
|
import SeoMeta from '../mixins/seo-meta.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {OpenFormFooter},
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
mixins: [SeoMeta],
|
mixins: [SeoMeta],
|
||||||
|
|
||||||
setup () {
|
setup () {
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
authenticated : computed(() => authStore.check),
|
authenticated : computed(() => authStore.check),
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,15 +23,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../../../components/pages/OpenFormFooter.vue'
|
|
||||||
import SeoMeta from '../../../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
|
||||||
OpenFormFooter
|
|
||||||
},
|
|
||||||
|
|
||||||
mixins: [SeoMeta],
|
|
||||||
middleware: 'guest',
|
middleware: 'guest',
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
|
@ -33,15 +33,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../../../components/pages/OpenFormFooter.vue'
|
|
||||||
import SeoMeta from '../../../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
|
||||||
OpenFormFooter
|
|
||||||
},
|
|
||||||
|
|
||||||
mixins: [SeoMeta],
|
|
||||||
middleware: 'guest',
|
middleware: 'guest',
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<div class="mt-6 flex flex-col">
|
|
||||||
<div class="w-full md:max-w-3xl md:mx-auto px-4 md:pt-16 pb-10">
|
|
||||||
<h1 class="sm:text-5xl mb-4">
|
|
||||||
OpnForm Discount for Students, Academics and NGOs
|
|
||||||
</h1>
|
|
||||||
<notion-page page-id="c65a499d39834e0b8978556a8d7af867" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<open-form-footer />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { OpenFormFooter },
|
|
||||||
layout: 'default',
|
|
||||||
|
|
||||||
props: {
|
|
||||||
metaTitle: { type: String, default: 'OpnForm Discount for Students, Academics and NGOs' },
|
|
||||||
metaDescription: { type: String, default: 'If you are a student, an academic of if you work for a NGO we are happy to offer you a 40% discount on your OpnForm Pro subscription.' }
|
|
||||||
},
|
|
||||||
|
|
||||||
data: () => ({
|
|
||||||
}),
|
|
||||||
|
|
||||||
computed: {},
|
|
||||||
|
|
||||||
mounted () {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
|
@ -31,7 +31,9 @@ import {initForm} from "~/composables/forms/initForm.js"
|
||||||
import {loadAllTemplates} from "~/stores/templates.js";
|
import {loadAllTemplates} from "~/stores/templates.js";
|
||||||
import {fetchAllWorkspaces} from "~/stores/workspaces.js";
|
import {fetchAllWorkspaces} from "~/stores/workspaces.js";
|
||||||
|
|
||||||
// middleware: 'guest',
|
definePageMeta({
|
||||||
|
middleware: "auth"
|
||||||
|
})
|
||||||
|
|
||||||
const templatesStore = useTemplatesStore()
|
const templatesStore = useTemplatesStore()
|
||||||
const workingFormStore = useWorkingFormStore()
|
const workingFormStore = useWorkingFormStore()
|
||||||
|
|
|
@ -26,6 +26,10 @@ import {initForm} from "~/composables/forms/initForm.js"
|
||||||
import FormEditor from "~/components/open/forms/components/FormEditor.vue"
|
import FormEditor from "~/components/open/forms/components/FormEditor.vue"
|
||||||
import CreateFormBaseModal from '../../../components/pages/forms/create/CreateFormBaseModal.vue'
|
import CreateFormBaseModal from '../../../components/pages/forms/create/CreateFormBaseModal.vue'
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
middleware: "auth"
|
||||||
|
})
|
||||||
|
|
||||||
// metaTitle: 'Create a new Form',
|
// metaTitle: 'Create a new Form',
|
||||||
|
|
||||||
// beforeRouteLeave (to, from, next) {
|
// beforeRouteLeave (to, from, next) {
|
||||||
|
|
|
@ -118,7 +118,6 @@ import {useFormsStore} from '../stores/forms'
|
||||||
import {useWorkspacesStore} from '../stores/workspaces'
|
import {useWorkspacesStore} from '../stores/workspaces'
|
||||||
import Fuse from 'fuse.js'
|
import Fuse from 'fuse.js'
|
||||||
import TextInput from '../components/forms/TextInput.vue'
|
import TextInput from '../components/forms/TextInput.vue'
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
import ExtraMenu from '../components/pages/forms/show/ExtraMenu.vue'
|
import ExtraMenu from '../components/pages/forms/show/ExtraMenu.vue'
|
||||||
import {refDebounced} from "@vueuse/core"
|
import {refDebounced} from "@vueuse/core"
|
||||||
|
|
||||||
|
|
|
@ -189,18 +189,21 @@ import Features from '~/components/pages/welcome/Features.vue'
|
||||||
import MoreFeatures from '~/components/pages/welcome/MoreFeatures.vue'
|
import MoreFeatures from '~/components/pages/welcome/MoreFeatures.vue'
|
||||||
import PricingTable from '../components/pages/pricing/PricingTable.vue'
|
import PricingTable from '../components/pages/pricing/PricingTable.vue'
|
||||||
import AiFeature from '~/components/pages/welcome/AiFeature.vue'
|
import AiFeature from '~/components/pages/welcome/AiFeature.vue'
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
import Testimonials from '../components/pages/welcome/Testimonials.vue'
|
import Testimonials from '../components/pages/welcome/Testimonials.vue'
|
||||||
import TemplatesSlider from '../components/pages/welcome/TemplatesSlider.vue'
|
import TemplatesSlider from '../components/pages/welcome/TemplatesSlider.vue'
|
||||||
import SeoMeta from '../mixins/seo-meta.js'
|
import SeoMeta from '../mixins/seo-meta.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {Testimonials, OpenFormFooter, Features, MoreFeatures, PricingTable, AiFeature, TemplatesSlider},
|
components: {Testimonials, Features, MoreFeatures, PricingTable, AiFeature, TemplatesSlider},
|
||||||
mixins: [SeoMeta],
|
mixins: [SeoMeta],
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
authenticated: computed(() => authStore.check),
|
authenticated: computed(() => authStore.check),
|
||||||
config: useAppConfig()
|
config: useAppConfig()
|
||||||
|
|
|
@ -13,10 +13,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { OpenFormFooter },
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|
|
@ -53,12 +53,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
|
|
||||||
import LoginForm from "~/components/pages/auth/components/LoginForm.vue"
|
import LoginForm from "~/components/pages/auth/components/LoginForm.vue"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
OpenFormFooter,
|
|
||||||
LoginForm
|
LoginForm
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -66,6 +64,9 @@ export default {
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
middleware: "guest"
|
middleware: "guest"
|
||||||
})
|
})
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
|
@ -238,27 +238,26 @@
|
||||||
<script>
|
<script>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useAuthStore } from '../stores/auth';
|
import { useAuthStore } from '../stores/auth';
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
import PricingTable from '../components/pages/pricing/PricingTable.vue'
|
import PricingTable from '../components/pages/pricing/PricingTable.vue'
|
||||||
import SeoMeta from '../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {OpenFormFooter, PricingTable},
|
components: {PricingTable},
|
||||||
mixins: [SeoMeta],
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
|
|
||||||
props: {},
|
|
||||||
|
|
||||||
beforeRouteEnter(to, from, next) {
|
|
||||||
if (!this.$config.paid_plans_enabled) { // If no paid plan so no need this page
|
|
||||||
next({name: 'home'})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
next()
|
|
||||||
},
|
|
||||||
|
|
||||||
setup () {
|
setup () {
|
||||||
|
definePageMeta({
|
||||||
|
middleware: [
|
||||||
|
function (to, from) {
|
||||||
|
// Custom inline middleware
|
||||||
|
if (!useAppConfig().paid_plans_enabled) { // If no paid plan so no need this page
|
||||||
|
return navigateTo('/', { redirectCode: 301 })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
user : computed(() => authStore.user),
|
user : computed(() => authStore.user),
|
||||||
authenticated : computed(() => authStore.check)
|
authenticated : computed(() => authStore.check)
|
||||||
|
|
|
@ -13,13 +13,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
import SeoMeta from '../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { OpenFormFooter},
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
mixins: [SeoMeta],
|
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
metaTitle: 'Privacy Policy',
|
metaTitle: 'Privacy Policy',
|
||||||
|
|
|
@ -54,17 +54,23 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
|
|
||||||
import RegisterForm from "~/components/pages/auth/components/RegisterForm.vue"
|
import RegisterForm from "~/components/pages/auth/components/RegisterForm.vue"
|
||||||
import AppSumoRegister from "~/components/vendor/appsumo/AppSumoRegister.vue"
|
import AppSumoRegister from "~/components/vendor/appsumo/AppSumoRegister.vue"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
AppSumoRegister,
|
AppSumoRegister,
|
||||||
OpenFormFooter,
|
|
||||||
RegisterForm
|
RegisterForm
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
definePageMeta({
|
||||||
|
middleware: "guest"
|
||||||
|
})
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
middleware: 'guest',
|
middleware: 'guest',
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,9 @@
|
||||||
<script>
|
<script>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useAuthStore } from '../../stores/auth'
|
import { useAuthStore } from '../../stores/auth'
|
||||||
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue'
|
|
||||||
import SeoMeta from '../../mixins/seo-meta.js'
|
import SeoMeta from '../../mixins/seo-meta.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { OpenFormFooter },
|
|
||||||
mixins: [SeoMeta],
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
middleware: 'auth',
|
middleware: 'auth',
|
||||||
|
|
||||||
|
|
|
@ -201,6 +201,10 @@ import Breadcrumb from '~/components/global/Breadcrumb.vue'
|
||||||
import SingleTemplate from '../../components/pages/templates/SingleTemplate.vue'
|
import SingleTemplate from '../../components/pages/templates/SingleTemplate.vue'
|
||||||
import {fetchTemplate} from "~/stores/templates.js";
|
import {fetchTemplate} from "~/stores/templates.js";
|
||||||
|
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
const templatesStore = useTemplatesStore()
|
const templatesStore = useTemplatesStore()
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,10 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import {loadAllTemplates} from "~/stores/templates.js";
|
import {loadAllTemplates} from "~/stores/templates.js";
|
||||||
|
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
// props: {
|
// props: {
|
||||||
// metaTitle: { type: String, default: 'Templates' },
|
// metaTitle: { type: String, default: 'Templates' },
|
||||||
// metaDescription: { type: String, default: 'Our collection of beautiful templates to create your own forms!' }
|
// metaDescription: { type: String, default: 'Our collection of beautiful templates to create your own forms!' }
|
||||||
|
|
|
@ -42,10 +42,13 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {computed} from 'vue'
|
import {computed} from 'vue'
|
||||||
import OpenFormFooter from '../../../components/pages/OpenFormFooter.vue'
|
|
||||||
import Breadcrumb from '~/components/global/Breadcrumb.vue'
|
import Breadcrumb from '~/components/global/Breadcrumb.vue'
|
||||||
import {loadAllTemplates} from "~/stores/templates.js";
|
import {loadAllTemplates} from "~/stores/templates.js";
|
||||||
|
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
const templatesStore = useTemplatesStore()
|
const templatesStore = useTemplatesStore()
|
||||||
|
|
|
@ -13,17 +13,15 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<templates-list :only-my="true" />
|
<!-- <templates-list :only-my="true" />-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import TemplatesList from '../../components/pages/templates/TemplatesList.vue'
|
import TemplatesList from '../../components/pages/templates/TemplatesList.vue'
|
||||||
import SeoMeta from '../../mixins/seo-meta.js'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { TemplatesList },
|
components: { TemplatesList },
|
||||||
mixins: [SeoMeta],
|
|
||||||
middleware: 'auth',
|
middleware: 'auth',
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
|
|
|
@ -46,6 +46,10 @@ import OpenFormFooter from '../../../components/pages/OpenFormFooter.vue'
|
||||||
import Breadcrumb from '~/components/global/Breadcrumb.vue'
|
import Breadcrumb from '~/components/global/Breadcrumb.vue'
|
||||||
import {loadAllTemplates} from "~/stores/templates.js";
|
import {loadAllTemplates} from "~/stores/templates.js";
|
||||||
|
|
||||||
|
defineRouteRules({
|
||||||
|
prerender: true
|
||||||
|
})
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
const templatesStore = useTemplatesStore()
|
const templatesStore = useTemplatesStore()
|
||||||
|
|
|
@ -13,10 +13,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import OpenFormFooter from '../components/pages/OpenFormFooter.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { OpenFormFooter },
|
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
|
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
export default {
|
||||||
|
// exclude all URLs that start with /secret
|
||||||
|
exclude: ['/settings/**', '/subscriptions/**', '/templates/my-templates'],
|
||||||
|
}
|
Loading…
Reference in New Issue