This commit is contained in:
Julien Nahum 2023-12-11 11:56:21 +01:00
parent 6ee56ac4cc
commit 5c4dc2a3d6
34 changed files with 92 additions and 96 deletions

View File

@ -19,7 +19,7 @@
v-if="loading" v-if="loading"
class="text-gray-600 dark:text-gray-400" class="text-gray-600 dark:text-gray-400"
> >
<loader class="mx-auto h-6 w-6" /> <Loader class="mx-auto h-6 w-6" />
<p class="mt-2 text-center text-sm text-gray-500"> <p class="mt-2 text-center text-sm text-gray-500">
Uploading your file... Uploading your file...
</p> </p>

View File

@ -6,7 +6,7 @@
<slot name="label" /> <slot name="label" />
</template> </template>
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" /> <Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
<div v-for="(option, index) in options" v-else :key="option[optionKey]" role="button" <div v-for="(option, index) in options" v-else :key="option[optionKey]" role="button"
:class="[theme.default.input,'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-900 flex',{ 'mb-2': index !== options.length,'!ring-red-500 !ring-2': hasValidation && form.errors.has(name), '!cursor-not-allowed !bg-gray-200':disabled }]" :class="[theme.default.input,'cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-900 flex',{ 'mb-2': index !== options.length,'!ring-red-500 !ring-2': hasValidation && form.errors.has(name), '!cursor-not-allowed !bg-gray-200':disabled }]"
@click="onSelect(option[optionKey])" @click="onSelect(option[optionKey])"

View File

@ -59,7 +59,7 @@
@drop.prevent="onUploadDropEvent($event)" @drop.prevent="onUploadDropEvent($event)"
> >
<div v-if="loading" class="text-gray-600 dark:text-gray-400"> <div v-if="loading" class="text-gray-600 dark:text-gray-400">
<loader class="h-6 w-6 mx-auto m-10" /> <Loader class="h-6 w-6 mx-auto m-10" />
<p class="text-center mt-6"> <p class="text-center mt-6">
Uploading your file... Uploading your file...
</p> </p>

View File

@ -9,7 +9,7 @@
> >
<div :class="{'h-6': !multiple, 'min-h-8': multiple && !loading}"> <div :class="{'h-6': !multiple, 'min-h-8': multiple && !loading}">
<transition name="fade" mode="out-in"> <transition name="fade" mode="out-in">
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" /> <Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
<div v-else-if="modelValue" key="value" class="flex" :class="{'min-h-8': multiple}"> <div v-else-if="modelValue" key="value" class="flex" :class="{'min-h-8': multiple}">
<slot name="selected" :option="modelValue" /> <slot name="selected" :option="modelValue" />
</div> </div>
@ -45,7 +45,7 @@
/> />
</div> </div>
<div v-if="loading" class="w-full py-2 flex justify-center"> <div v-if="loading" class="w-full py-2 flex justify-center">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<template v-if="filteredOptions.length > 0"> <template v-if="filteredOptions.length > 0">
<li v-for="item in filteredOptions" :key="item[optionKey]" role="option" :style="optionStyle" <li v-for="item in filteredOptions" :key="item[optionKey]" role="option" :style="optionStyle"

View File

@ -6,7 +6,7 @@
<div class="px-4 mx-auto sm:px-6 lg:px-8 max-w-7xl"> <div class="px-4 mx-auto sm:px-6 lg:px-8 max-w-7xl">
<div class="flex items-center justify-center space-x-4"> <div class="flex items-center justify-center space-x-4">
<div v-if="displayHome" class="flex items-center"> <div v-if="displayHome" class="flex items-center">
<router-link class="text-gray-400 hover:text-gray-500" :to="{ name: (authenticated) ? 'home' : 'index' }"> <NuxtLink class="text-gray-400 hover:text-gray-500" :to="{ name: (authenticated) ? 'home' : 'index' }">
<svg class="flex-shrink-0 w-5 h-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <svg class="flex-shrink-0 w-5 h-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
<path fill-rule="evenodd" <path fill-rule="evenodd"
d="M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z" d="M9.293 2.293a1 1 0 011.414 0l7 7A1 1 0 0117 11h-1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-3a1 1 0 00-1-1H9a1 1 0 00-1 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-6H3a1 1 0 01-.707-1.707l7-7z"
@ -14,7 +14,7 @@
/> />
</svg> </svg>
<span class="sr-only">Home</span> <span class="sr-only">Home</span>
</router-link> </NuxtLink>
<svg class="flex-shrink-0 w-5 h-5 text-gray-400 ml-4" viewBox="0 0 20 20" fill="currentColor" <svg class="flex-shrink-0 w-5 h-5 text-gray-400 ml-4" viewBox="0 0 20 20" fill="currentColor"
aria-hidden="true" aria-hidden="true"
> >
@ -26,11 +26,11 @@
</div> </div>
<div v-for="(item,index) in path" :key="index" class="flex items-center"> <div v-for="(item,index) in path" :key="index" class="flex items-center">
<router-link v-if="item.route" class="text-sm font-semibold text-gray-500 hover:text-gray-700 truncate" <NuxtLink v-if="item.route" class="text-sm font-semibold text-gray-500 hover:text-gray-700 truncate"
:to="item.route" :to="item.route"
> >
{{ item.label }} {{ item.label }}
</router-link> </NuxtLink>
<div v-else class="text-sm font-semibold sm:w-full w-36 text-blue-500 truncate"> <div v-else class="text-sm font-semibold sm:w-full w-36 text-blue-500 truncate">
{{ item.label }} {{ item.label }}
</div> </div>

View File

@ -3,43 +3,43 @@
<div class="max-w-7xl mx-auto px-8"> <div class="max-w-7xl mx-auto px-8">
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<div class="flex items-center"> <div class="flex items-center">
<router-link :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold hover:no-underline flex items-center"> <NuxtLink :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold hover:no-underline flex items-center">
<img src="/img/logo.svg" alt="notion tools logo" class="w-8 h-8"> <img src="/img/logo.svg" alt="notion tools logo" class="w-8 h-8">
<span <span
class="ml-2 text-md hidden sm:inline text-black dark:text-white" class="ml-2 text-md hidden sm:inline text-black dark:text-white"
> >
OpnForm</span> OpnForm</span>
</router-link> </NuxtLink>
<workspace-dropdown class="ml-6" /> <workspace-dropdown class="ml-6" />
</div> </div>
<div v-if="showAuth" class="hidden md:block ml-auto relative"> <div v-if="showAuth" class="hidden md:block ml-auto relative">
<router-link v-if="$route.name !== 'templates'" :to="{name:'templates'}" <NuxtLink v-if="$route.name !== 'templates'" :to="{name:'templates'}"
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8" class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
> >
Templates Templates
</router-link> </NuxtLink>
<router-link v-if="$route.name !== 'ai-form-builder'" :to="{name:'ai-form-builder'}" <NuxtLink v-if="$route.name !== 'ai-form-builder'" :to="{name:'ai-form-builder'}"
class="text-sm text-gray-600 dark:text-white hidden lg:inline hover:text-gray-800 cursor-pointer mt-1 mr-8" class="text-sm text-gray-600 dark:text-white hidden lg:inline hover:text-gray-800 cursor-pointer mt-1 mr-8"
> >
AI Form Builder AI Form Builder
</router-link> </NuxtLink>
<router-link v-if="paidPlansEnabled && (user===null || (user && workspace && !workspace.is_pro)) && $route.name !== 'pricing'" :to="{name:'pricing'}" <NuxtLink v-if="paidPlansEnabled && (user===null || (user && workspace && !workspace.is_pro)) && $route.name !== 'pricing'" :to="{name:'pricing'}"
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8" class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1 mr-8"
> >
<span v-if="user">Upgrade</span> <span v-if="user">Upgrade</span>
<span v-else>Pricing</span> <span v-else>Pricing</span>
</router-link> </NuxtLink>
<a v-if="hasCrisp" href="#" <a v-if="hasCrisp" href="#"
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" @click.prevent="openCrisp" class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" @click.prevent="openCrisp"
> >
Help Help
</a> </a>
<a v-else :href="helpUrl" <NuxtLink v-else :href="helpUrl"
class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" target="_blank" class="text-sm text-gray-600 dark:text-white hover:text-gray-800 cursor-pointer mt-1" target="_blank"
> >
Help Help
</a> </NuxtLink>
</div> </div>
<div v-if="showAuth" class="hidden md:block pl-5 border-gray-300 border-r h-5" /> <div v-if="showAuth" class="hidden md:block pl-5 border-gray-300 border-r h-5" />
<div v-if="showAuth" class="block"> <div v-if="showAuth" class="block">
@ -59,7 +59,7 @@
</button> </button>
</template> </template>
<router-link v-if="userOnboarded" :to="{ name: 'home' }" <NuxtLink v-if="userOnboarded" :to="{ name: 'home' }"
class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center" class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
> >
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24"
@ -70,18 +70,18 @@
/> />
</svg> </svg>
My Forms My Forms
</router-link> </NuxtLink>
<router-link v-if="userOnboarded" :to="{ name: 'my_templates' }" <NuxtLink v-if="userOnboarded" :to="{ name: 'my_templates' }"
class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center" class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
> >
<svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 mr-2" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
</svg> </svg>
My Templates My Templates
</router-link> </NuxtLink>
<router-link :to="{ name: 'settings.profile' }" <NuxtLink :to="{ name: 'settings.profile' }"
class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center" class="block block px-4 py-2 text-md text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
> >
<svg class="w-4 h-4 mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" <svg class="w-4 h-4 mr-2" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
@ -95,7 +95,7 @@
/> />
</svg> </svg>
Settings Settings
</router-link> </NuxtLink>
<a href="#" <a href="#"
class="block block px-4 py-2 text-md text-gray-700 dark:text-white hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center" class="block block px-4 py-2 text-md text-gray-700 dark:text-white hover:bg-gray-100 hover:text-gray-900 dark:text-gray-100 dark:hover:text-white dark:hover:bg-gray-600 flex items-center"
@ -112,12 +112,12 @@
</a> </a>
</dropdown> </dropdown>
<div v-else class="flex gap-2"> <div v-else class="flex gap-2">
<router-link v-if="$route.name !== 'login'" :to="{ name: 'login' }" <NuxtLink v-if="$route.name !== 'login'" :to="{ name: 'login' }"
class="text-gray-600 dark:text-white hover:text-gray-800 dark:hover:text-white px-0 sm:px-3 py-2 rounded-md text-sm" class="text-gray-600 dark:text-white hover:text-gray-800 dark:hover:text-white px-0 sm:px-3 py-2 rounded-md text-sm"
active-class="text-gray-800 dark:text-white" active-class="text-gray-800 dark:text-white"
> >
Login Login
</router-link> </NuxtLink>
<v-button v-track.nav_create_form_click size="small" :to="{ name: 'forms-create-guest' }" color="outline-blue" :arrow="true"> <v-button v-track.nav_create_form_click size="small" :to="{ name: 'forms-create-guest' }" color="outline-blue" :arrow="true">
Create a form Create a form

View File

@ -1,7 +1,7 @@
<template> <template>
<a v-if="href" :class="btnClasses" :href="href" :target="target"> <NuxtLink v-if="href" :class="btnClasses" :href="href" :target="target">
<slot /> <slot />
</a> </NuxtLink>
<button v-else-if="!to" :type="nativeType" :disabled="loading?true:null" :class="btnClasses" <button v-else-if="!to" :type="nativeType" :disabled="loading?true:null" :class="btnClasses"
@click="onClick($event)" @click="onClick($event)"
> >
@ -15,9 +15,9 @@
/> />
</svg> </svg>
</template> </template>
<loader v-else class="h-6 w-6 mx-auto" :class="`text-${colorShades['text']}`" /> <Loader v-else class="h-6 w-6 mx-auto" :class="`text-${colorShades['text']}`" />
</button> </button>
<router-link v-else :class="btnClasses" :to="to" :target="target"> <NuxtLink v-else :class="btnClasses" :to="to" :target="target">
<span class="no-underline mx-auto"> <span class="no-underline mx-auto">
<slot /> <slot />
</span> </span>
@ -26,7 +26,7 @@
stroke-linejoin="round" stroke-linejoin="round"
/> />
</svg> </svg>
</router-link> </NuxtLink>
</template> </template>
<script> <script>

View File

@ -1,7 +1,7 @@
<template> <template>
<div v-if="isAutoSubmit"> <div v-if="isAutoSubmit">
<p class="text-center p-4"> <p class="text-center p-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</p> </p>
</div> </div>
<form v-else-if="dataForm" @submit.prevent=""> <form v-else-if="dataForm" @submit.prevent="">

View File

@ -5,7 +5,7 @@
<template v-if="!loading"> <template v-if="!loading">
<slot /> <slot />
</template> </template>
<loader v-else class="h-6 w-6 text-white mx-auto" /> <Loader v-else class="h-6 w-6 text-white mx-auto" />
</button> </button>
</template> </template>

View File

@ -78,7 +78,7 @@
</div> </div>
</div> </div>
<div v-else class="flex justify-center items-center"> <div v-else class="flex justify-center items-center">
<loader class="w-6 h-6" /> <Loader class="w-6 h-6" />
</div> </div>
</template> </template>

View File

@ -19,7 +19,7 @@
> >
</div> </div>
<loader v-else-if="isLoading" class="h-6 w-6 text-nt-blue mx-auto" /> <Loader v-else-if="isLoading" class="h-6 w-6 text-nt-blue mx-auto" />
<LineChart v-else <LineChart v-else
:options="chartOptions" :options="chartOptions"
:data="chartData" :data="chartData"

View File

@ -40,7 +40,7 @@
</div> </div>
</modal> </modal>
<loader v-if="!form || !formInitDone" class="h-6 w-6 text-nt-blue mx-auto" /> <Loader v-if="!form || !formInitDone" class="h-6 w-6 text-nt-blue mx-auto" />
<div v-else> <div v-else>
<div v-if="form && tableData.length > 0" class="flex flex-wrap items-end"> <div v-if="form && tableData.length > 0" class="flex flex-wrap items-end">
<div class="flex-grow"> <div class="flex-grow">

View File

@ -7,7 +7,7 @@
<span v-if="required" class="text-red-500 required-dot">*</span> <span v-if="required" class="text-red-500 required-dot">*</span>
</label> </label>
<loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" /> <Loader v-if="loading" key="loader" class="h-6 w-6 text-nt-blue mx-auto" />
<div v-else class="my-3"> <div v-else class="my-3">
<div v-for="(questionForm, quesKey) in allQuestions" :key="quesKey" class="bg-gray-100 p-2 mb-4"> <div v-for="(questionForm, quesKey) in allQuestions" :key="quesKey" class="bg-gray-100 p-2 mb-4">
<v-button color="red" size="small" class="mb-2" @click.prevent="onRemove(quesKey)"> <v-button color="red" size="small" class="mb-2" @click.prevent="onRemove(quesKey)">
@ -64,7 +64,7 @@ export default {
watch: { }, watch: { },
computed: { }, computed: { },
methods: { methods: {
onAdd() { onAdd() {
this.allQuestions.push(this.newQuestion) this.allQuestions.push(this.newQuestion)

View File

@ -60,14 +60,14 @@
</tr> </tr>
<tr v-if="loading" class="n-table-row border-t bg-gray-50 dark:bg-gray-900"> <tr v-if="loading" class="n-table-row border-t bg-gray-50 dark:bg-gray-900">
<td :colspan="form.properties.length" class="p-8 w-full"> <td :colspan="form.properties.length" class="p-8 w-full">
<loader class="w-4 h-4 mx-auto" /> <Loader class="w-4 h-4 mx-auto" />
</td> </td>
</tr> </tr>
</tbody> </tbody>
<tbody v-else key="body-content" class="n-table-body"> <tbody v-else key="body-content" class="n-table-body">
<tr class="n-table-row loader w-full"> <tr class="n-table-row loader w-full">
<td :colspan="form.properties.length" class="n-table-cell w-full p-8"> <td :colspan="form.properties.length" class="n-table-cell w-full p-8">
<loader v-if="loading" class="w-4 h-4 mx-auto" /> <Loader v-if="loading" class="w-4 h-4 mx-auto" />
<p v-else class="text-gray-500 text-center"> <p v-else class="text-gray-500 text-center">
No data found. No data found.
</p> </p>

View File

@ -7,24 +7,24 @@
</p> </p>
</div> </div>
<div class="flex justify-center mt-5 md:mt-0"> <div class="flex justify-center mt-5 md:mt-0">
<router-link :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold flex items-center"> <NuxtLink :to="{ name: user ? 'home' : 'index' }" class="flex-shrink-0 font-semibold flex items-center">
<img src="/img/logo.svg" alt="notion tools logo" class="w-10 h-10"> <img src="/img/logo.svg" alt="notion tools logo" class="w-10 h-10">
<span class="ml-2 text-xl text-black dark:text-white"> <span class="ml-2 text-xl text-black dark:text-white">
OpnForm OpnForm
</span> </span>
</router-link> </NuxtLink>
</div> </div>
<ul class="flex justify-center mt-5 md:mt-1"> <ul class="flex justify-center mt-5 md:mt-1">
<li class="mr-10"> <li class="mr-10">
<router-link :to="{name:'privacy-policy'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"> <NuxtLink :to="{name:'privacy-policy'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
Privacy Policy Privacy Policy
</router-link> </NuxtLink>
</li> </li>
<li class="list-disc pl-3"> <li class="list-disc pl-3">
<router-link :to="{name:'terms-conditions'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"> <NuxtLink :to="{name:'terms-conditions'}" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue">
Terms & Conditions Terms & Conditions
</router-link> </NuxtLink>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -48,10 +48,7 @@
</template> </template>
<script> <script>
import { computed } from 'vue'
import Form from 'vform' import Form from 'vform'
import { useAuthStore } from '../../../../stores/auth.js'
import { initCrisp } from '../../../middleware/check-auth.js'
export default { export default {
name: 'RegisterForm', name: 'RegisterForm',
@ -66,8 +63,10 @@ export default {
setup () { setup () {
const authStore = useAuthStore() const authStore = useAuthStore()
const amplitude = useAmplitude()
return { return {
authStore authStore,
logEvent: amplitude.logEvent
} }
}, },
@ -127,10 +126,8 @@ export default {
await this.authStore.updateUser(data) await this.authStore.updateUser(data)
// Track event // Track event
this.$logEvent('register', { source: this.form.hear_about_us })
initCrisp(data) logEvent('register', { source: this.form.hear_about_us })
this.$crisp.push(['set', 'session:event', [[['register', {}, 'blue']]]])
// AppSumo License // AppSumo License
if (data.appsumo_license === false) { if (data.appsumo_license === false) {

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div v-if="loadingDuplicate || loadingDelete" class="pr-4 pt-2"> <div v-if="loadingDuplicate || loadingDelete" class="pr-4 pt-2">
<loader class="h-6 w-6 mx-auto" /> <Loader class="h-6 w-6 mx-auto" />
</div> </div>
<dropdown v-else class="inline" dusk="nav-dropdown"> <dropdown v-else class="inline" dusk="nav-dropdown">
<template #trigger="{toggle}"> <template #trigger="{toggle}">

View File

@ -21,7 +21,7 @@
</div> </div>
<div v-if="templatesLoading" class="text-center mt-4"> <div v-if="templatesLoading" class="text-center mt-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4"> <p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
No templates found. No templates found.
@ -44,8 +44,8 @@
</div> </div>
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> <div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
<router-link v-for="row in types" :key="row.slug" <router-link v-for="row in types" :key="row.slug"
:to="{params:{slug:row.slug}, name:'templates.types.show'}" :to="{params:{slug:row.slug}, name:'templates.types.show'}"
:title="row.name" :title="row.name"
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
> >
@ -64,8 +64,8 @@
</div> </div>
<div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> <div class="grid grid-cols-1 gap-8 mt-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
<router-link v-for="row in industries" :key="row.slug" <router-link v-for="row in industries" :key="row.slug"
:to="{params:{slug:row.slug}, name:'templates.industries.show'}" :to="{params:{slug:row.slug}, name:'templates.industries.show'}"
:title="row.name" :title="row.name"
class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue" class="text-gray-600 dark:text-gray-400 transition-colors duration-300 hover:text-nt-blue"
> >

View File

@ -16,7 +16,7 @@
</template> </template>
<template v-else> <template v-else>
<div class="px-6"> <div class="px-6">
<loader class="h-4 w-4 inline" /> <Loader class="h-4 w-4 inline" />
</div> </div>
</template> </template>
</button> </button>

View File

@ -30,15 +30,26 @@ export default defineNuxtConfig({
sentry: { sentry: {
dsn: opnformConfig.sentry_dsn, dsn: opnformConfig.sentry_dsn,
}, },
components: [
{
path: '~/components/forms',
pathPrefix: false,
},
{
path: '~/components/global',
pathPrefix: false,
},
'~/components',
],
routeRules: { routeRules: {
'/ai-form-builder': { '/ai-form-builder': {
swr: 60*60 swr: 60 * 60
}, },
'/privacy-policy': { '/privacy-policy': {
swr: 60*60 swr: 60 * 60
}, },
'/terms-conditions': { '/terms-conditions': {
swr: 60*60 swr: 60 * 60
}, },
} }
}) })

View File

@ -11,7 +11,7 @@
@on-save="formInitialHash=null" @on-save="formInitialHash=null"
/> />
<div v-else class="text-center mt-4 py-6"> <div v-else class="text-center mt-4 py-6">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
</div> </div>
</transition> </transition>

View File

@ -12,7 +12,7 @@
@openRegister="openRegister" @openRegister="openRegister"
/> />
<div v-else class="text-center mt-4 py-6"> <div v-else class="text-center mt-4 py-6">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
</div> </div>
</transition> </transition>

View File

@ -8,7 +8,7 @@
{{ error }} {{ error }}
</div> </div>
<div v-else class="text-center mt-4 py-6"> <div v-else class="text-center mt-4 py-6">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
</div> </div>
</template> </template>

View File

@ -31,13 +31,13 @@
</div> </div>
<div v-else-if="formLoading"> <div v-else-if="formLoading">
<p class="text-center mt-6 p-4"> <p class="text-center mt-6 p-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</p> </p>
</div> </div>
<template v-else> <template v-else>
<div v-if="recordLoading"> <div v-if="recordLoading">
<p class="text-center mt-6 p-4"> <p class="text-center mt-6 p-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</p> </p>
</div> </div>
<open-complete-form v-show="!recordLoading" ref="open-complete-form" :form="form" class="mb-10" <open-complete-form v-show="!recordLoading" ref="open-complete-form" :form="form" class="mb-10"

View File

@ -122,7 +122,7 @@
</div> </div>
</template> </template>
<div v-else-if="loading" class="text-center w-full p-5"> <div v-else-if="loading" class="text-center w-full p-5">
<loader class="h-6 w-6 mx-auto" /> <Loader class="h-6 w-6 mx-auto" />
</div> </div>
<div v-else class="text-center w-full p-5"> <div v-else class="text-center w-full p-5">
Form not found. Form not found.

View File

@ -95,7 +95,7 @@
</div> </div>
</div> </div>
<div v-if="formsLoading" class="text-center"> <div v-if="formsLoading" class="text-center">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -45,9 +45,6 @@
Unlimited submissions Unlimited submissions
</p> </p>
</div> </div>
<!-- <div class="mt-3 p-6">-->
<!-- <testimonials />-->
<!-- </div>-->
</div> </div>
</div> </div>
</div> </div>
@ -56,22 +53,17 @@
</template> </template>
<script> <script>
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue' import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
import Testimonials from '../../components/pages/welcome/Testimonials.vue' import LoginForm from "~/components/pages/auth/components/LoginForm.vue"
import LoginForm from './components/LoginForm.vue'
import SeoMeta from '../../mixins/seo-meta.js'
export default { export default {
components: { components: {
OpenFormFooter, OpenFormFooter,
Testimonials,
LoginForm LoginForm
}, },
middleware: 'guest', middleware: 'guest',
mixins: [SeoMeta],
data: () => ({ data: () => ({
metaTitle: 'Login', metaTitle: 'Login',
}), }),

View File

@ -46,9 +46,6 @@
Unlimited submissions Unlimited submissions
</p> </p>
</div> </div>
<!-- <div class="mt-3 p-6">-->
<!-- <testimonials />-->
<!-- </div>-->
</div> </div>
</div> </div>
</div> </div>
@ -57,10 +54,9 @@
</template> </template>
<script> <script>
import OpenFormFooter from '../../components/pages/OpenFormFooter.vue' import OpenFormFooter from '~/components/pages/OpenFormFooter.vue'
import RegisterForm from './components/RegisterForm.vue' import RegisterForm from "~/components/pages/auth/components/RegisterForm.vue"
import SeoMeta from '../../mixins/seo-meta.js' import AppSumoRegister from "~/components/vendor/appsumo/AppSumoRegister.vue"
import AppSumoRegister from '../../components/vendor/appsumo/AppSumoRegister.vue'
export default { export default {
components: { components: {
@ -69,7 +65,6 @@ export default {
RegisterForm RegisterForm
}, },
mixins: [SeoMeta],
middleware: 'guest', middleware: 'guest',

View File

@ -20,7 +20,7 @@
</div> </div>
<div v-if="loading" class="w-full text-blue-500 text-center"> <div v-if="loading" class="w-full text-blue-500 text-center">
<loader class="h-10 w-10 p-5" /> <Loader class="h-10 w-10 p-5" />
</div> </div>
<div v-else-if="workspace"> <div v-else-if="workspace">
<div class="mt-4 flex group bg-white items-center"> <div class="mt-4 flex group bg-white items-center">

View File

@ -8,7 +8,7 @@
We're checking the status of your subscription please wait a moment... We're checking the status of your subscription please wait a moment...
</h4> </h4>
<div class="text-center"> <div class="text-center">
<loader class="h-6 w-6 text-nt-blue mx-auto mt-20" /> <Loader class="h-6 w-6 text-nt-blue mx-auto mt-20" />
</div> </div>
</div> </div>
<open-form-footer /> <open-form-footer />

View File

@ -3,7 +3,7 @@
<breadcrumb :path="breadcrumbs" /> <breadcrumb :path="breadcrumbs" />
<div v-if="templatesLoading" class="text-center my-4"> <div v-if="templatesLoading" class="text-center my-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="industry === null || !industry" class="text-center my-4"> <p v-else-if="industry === null || !industry" class="text-center my-4">
We could not find this industry. We could not find this industry.
@ -41,7 +41,7 @@
</div> </div>
<div v-if="templatesLoading" class="text-center mt-4"> <div v-if="templatesLoading" class="text-center mt-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4"> <p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
No templates found. No templates found.

View File

@ -26,7 +26,7 @@
</breadcrumb> </breadcrumb>
<div v-if="templatesLoading" class="text-center my-4"> <div v-if="templatesLoading" class="text-center my-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="template === null || !template" class="text-center my-4"> <p v-else-if="template === null || !template" class="text-center my-4">
We could not find this template. We could not find this template.

View File

@ -3,7 +3,7 @@
<breadcrumb :path="breadcrumbs" /> <breadcrumb :path="breadcrumbs" />
<div v-if="templatesLoading" class="text-center my-4"> <div v-if="templatesLoading" class="text-center my-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="type === null || !type" class="text-center my-4"> <p v-else-if="type === null || !type" class="text-center my-4">
We could not find this type. We could not find this type.
@ -41,7 +41,7 @@
</div> </div>
<div v-if="templatesLoading" class="text-center mt-4"> <div v-if="templatesLoading" class="text-center mt-4">
<loader class="h-6 w-6 text-nt-blue mx-auto" /> <Loader class="h-6 w-6 text-nt-blue mx-auto" />
</div> </div>
<p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4"> <p v-else-if="enrichedTemplates.length === 0" class="text-center mt-4">
No templates found. No templates found.

View File

@ -49,6 +49,7 @@ export const useAuthStore = defineStore('auth', {
updateUser (payload) { updateUser (payload) {
this.user = payload this.user = payload
this.initServiceClients()
}, },
initServiceClients() { initServiceClients() {