Files

76 lines
2.3 KiB
Vue

<script setup>
import { ref, computed, onBeforeMount } from 'vue';
import { useMapGetter } from 'dashboard/composables/store';
import { useBranding } from 'shared/composables/useBranding';
import SignupForm from './components/Signup/Form.vue';
import Testimonials from './components/Testimonials/Index.vue';
import Spinner from 'shared/components/Spinner.vue';
const { replaceInstallationName } = useBranding();
const globalConfig = useMapGetter('globalConfig/get');
const isLoading = ref(false);
const isAChatwootInstance = computed(() => {
return globalConfig.value.installationName === 'Chatwoot';
});
const resizeContainers = () => {
isLoading.value = false;
};
onBeforeMount(() => {
isLoading.value = isAChatwootInstance.value;
});
</script>
<template>
<div class="w-full h-full bg-n-background">
<div v-show="!isLoading" class="flex h-full min-h-screen items-center">
<div
class="flex-1 min-h-[640px] inline-flex items-center h-full justify-center overflow-auto py-6"
>
<div class="px-8 max-w-[560px] w-full overflow-auto">
<div class="mb-4">
<img
:src="globalConfig.logo"
:alt="globalConfig.installationName"
class="block w-auto h-8 dark:hidden"
/>
<img
v-if="globalConfig.logoDark"
:src="globalConfig.logoDark"
:alt="globalConfig.installationName"
class="hidden w-auto h-8 dark:block"
/>
<h2
class="mt-6 text-3xl font-medium text-left mb-7 text-n-slate-12"
>
{{ $t('REGISTER.TRY_WOOT') }}
</h2>
</div>
<SignupForm />
<div class="px-1 text-sm text-n-slate-12">
<span>{{ $t('REGISTER.HAVE_AN_ACCOUNT') }}</span>
<router-link class="text-link text-n-brand mx-1" to="/app/login">
{{ replaceInstallationName($t('LOGIN.TITLE')) }}
</router-link>
</div>
</div>
</div>
<Testimonials
v-if="isAChatwootInstance"
class="flex-1"
@resize-containers="resizeContainers"
/>
</div>
<div
v-show="isLoading"
class="flex items-center min-h-screen justify-center w-full h-full"
>
<Spinner color-scheme="primary" size="" />
</div>
</div>
</template>