DONE: replace email verification by link instead of otp

This commit is contained in:
ISMAIL MASSERAN
2026-07-12 10:03:31 +08:00
parent 1e50e3d19f
commit 431bbee17c
30 changed files with 263 additions and 593 deletions
@@ -1,4 +1,5 @@
<script setup lang="ts">
import { useRoute, useRouter } from 'vue-router'
import { onMounted, onUnmounted, ref, watch } from 'vue'
import { useBreadcrumb } from '@/composables/useBreadcrumb'
import { useNotifications } from '@/modules/notification'
@@ -14,6 +15,7 @@ import { useFilteredMenu } from '@/composables/useFilteredMenu'
import { SideMenu } from '@/components/side-menu'
import { AccountDropdown, AccountTrigger } from '@/components/account-dropdown'
import { NotificationDropdown } from '@/components/notification-dropdown'
import EmailVerificationBanner from '@/modules/auth/components/EmailVerificationBanner.vue'
import {
ScrollAreaRoot,
ScrollAreaViewport,
@@ -33,6 +35,8 @@ const {
} = useSideMenu()
const authStore = useAuthStore()
const route = useRoute()
const router = useRouter()
const breadcrumbItems = useBreadcrumb([])
const filteredMenu = useFilteredMenu(mainMenu)
const { unreadCount, fetchNotifications } = useNotifications()
@@ -89,6 +93,12 @@ onMounted(() => {
authStore.fetchSession()
fetchNotifications()
document.addEventListener('click', handleDocumentClick)
const verified = route.query.verified
if (typeof verified === 'string' && verified) {
authStore.fetchSession()
router.replace({ query: { ...route.query, verified: undefined } })
}
})
onUnmounted(() => {
@@ -224,6 +234,10 @@ onUnmounted(() => {
</div>
</div>
</div>
<EmailVerificationBanner
v-if="authStore.isAuthenticated && !authStore.isEmailVerified"
class="mb-4"
/>
<RouterView />
</div>
</div>