-
Notifications
You must be signed in to change notification settings - Fork 314
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/JhumanJ/OpnForm
- Loading branch information
Showing
228 changed files
with
17,156 additions
and
8,892 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
module.exports = { | ||
root: true, | ||
extends: ['@nuxt/eslint-config'], | ||
parser: 'vue-eslint-parser', | ||
env: { | ||
browser: true, | ||
node: true, | ||
}, | ||
extends: ['@nuxt/eslint-config'], | ||
rules: { | ||
'vue/require-default-prop': 'off', | ||
'vue/no-mutating-props': 'off', | ||
semi: ['error', 'never'], | ||
'vue/no-v-html': 'off', | ||
'prefer-rest-params': 'off', | ||
'vue/valid-template-root': 'off', | ||
'no-undef': 'off', | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,123 @@ | ||
<template> | ||
<div id="app" class="bg-white dark:bg-notion-dark"> | ||
<transition enter-active-class="linear duration-200 overflow-hidden" | ||
enter-from-class="max-h-0" | ||
enter-to-class="max-h-screen" | ||
leave-active-class="linear duration-200 overflow-hidden" | ||
leave-from-class="max-h-screen" | ||
leave-to-class="max-h-0" | ||
<div | ||
id="app" | ||
class="bg-white dark:bg-notion-dark" | ||
> | ||
<transition | ||
enter-active-class="linear duration-200 overflow-hidden" | ||
enter-from-class="max-h-0" | ||
enter-to-class="max-h-screen" | ||
leave-active-class="linear duration-200 overflow-hidden" | ||
leave-from-class="max-h-screen" | ||
leave-to-class="max-h-0" | ||
> | ||
<div v-if="announcement && !isIframe" class="bg-nt-blue text-white text-center p-3 relative"> | ||
<a class="text-white font-semibold" href="" target="_blank">🚨 | ||
OpnForm beta is over 🚨</a> | ||
<div role="button" class="text-white absolute right-0 top-0 p-3 cursor-pointer" @click="announcement=false"> | ||
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" viewBox="0 0 20 20" fill="currentColor"> | ||
<path fill-rule="evenodd" | ||
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" | ||
clip-rule="evenodd" | ||
<div | ||
v-if="announcement && !isIframe" | ||
class="bg-nt-blue text-white text-center p-3 relative" | ||
> | ||
<a | ||
class="text-white font-semibold" | ||
href="" | ||
target="_blank" | ||
>🚨 OpnForm beta is over 🚨</a> | ||
<div | ||
role="button" | ||
class="text-white absolute right-0 top-0 p-3 cursor-pointer" | ||
@click="announcement = false" | ||
> | ||
<svg | ||
xmlns="http://www.w3.org/2000/svg" | ||
class="h-6 w-6" | ||
viewBox="0 0 20 20" | ||
fill="currentColor" | ||
> | ||
<path | ||
fill-rule="evenodd" | ||
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" | ||
clip-rule="evenodd" | ||
/> | ||
</svg> | ||
</div> | ||
</div> | ||
</transition> | ||
|
||
|
||
<NuxtLoadingIndicator color="#2563eb"/> | ||
<NuxtLoadingIndicator color="#2563eb" /> | ||
<NuxtLayout> | ||
<NuxtPage/> | ||
<NuxtPage /> | ||
</NuxtLayout> | ||
<ToolsStopImpersonation/> | ||
<ToolsStopImpersonation /> | ||
|
||
<Notifications /> | ||
<feature-base/> | ||
<feature-base /> | ||
</div> | ||
</template> | ||
|
||
<script> | ||
import {computed} from 'vue' | ||
import {useAppStore} from '~/stores/app' | ||
import FeatureBase from "~/components/vendor/FeatureBase.vue"; | ||
import { computed } from "vue" | ||
import { useAppStore } from "~/stores/app" | ||
import FeatureBase from "~/components/vendor/FeatureBase.vue" | ||
export default { | ||
el: '#app', | ||
el: "#app", | ||
name: 'OpnForm', | ||
name: "OpnForm", | ||
components: {FeatureBase}, | ||
components: { FeatureBase }, | ||
setup() { | ||
const config = useRuntimeConfig() | ||
useOpnSeoMeta({ | ||
title: 'OpnForm', | ||
description: 'Create beautiful forms for free. Unlimited fields, unlimited submissions. It\'s free and it takes less than 1 minute to create your first form.', | ||
ogImage: '/img/social-preview.jpg', | ||
title: "OpnForm", | ||
description: | ||
"Create beautiful forms for free. Unlimited fields, unlimited submissions. It's free and it takes less than 1 minute to create your first form.", | ||
ogImage: "/img/social-preview.jpg", | ||
robots: () => { | ||
return config.public.env === 'production' ? null : 'noindex, nofollow' | ||
} | ||
return config.public.env === "production" ? null : "noindex, nofollow" | ||
}, | ||
}) | ||
useHead({ | ||
titleTemplate: (titleChunk) => { | ||
return titleChunk ? `${titleChunk} - OpnForm` : 'OpnForm'; | ||
} | ||
return titleChunk ? `${titleChunk} - OpnForm` : "OpnForm" | ||
}, | ||
}) | ||
const appStore = useAppStore() | ||
return { | ||
layout: computed(() => appStore.layout), | ||
isIframe: useIsIframe() | ||
isIframe: useIsIframe(), | ||
} | ||
}, | ||
mounted() { | ||
useCrisp().showChat() | ||
}, | ||
data: () => ({ | ||
announcement: false, | ||
alert: { | ||
type: null, | ||
autoClose: 0, | ||
message: '', | ||
message: "", | ||
confirmationProceed: null, | ||
confirmationCancel: null | ||
confirmationCancel: null, | ||
}, | ||
navbarHidden: false | ||
navbarHidden: false, | ||
}), | ||
computed: { | ||
isOnboardingPage() { | ||
return this.$route.name === 'onboarding' | ||
return this.$route.name === "onboarding" | ||
}, | ||
}, | ||
mounted() { | ||
useCrisp().showChat() | ||
}, | ||
methods: { | ||
workspaceAdded() { | ||
this.$router.push({name: 'home'}) | ||
this.$router.push({ name: "home" }) | ||
}, | ||
hideNavbar(hidden = true) { | ||
this.navbarHidden = hidden | ||
} | ||
} | ||
}, | ||
}, | ||
} | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.