kopia lustrzana https://github.com/elk-zone/elk
				
				
				
			
		
			
				
	
	
		
			41 wiersze
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			41 wiersze
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
import type { RouteLocationNormalized } from 'vue-router'
 | 
						|
 | 
						|
export default defineNuxtRouteMiddleware((to) => {
 | 
						|
  if (import.meta.server)
 | 
						|
    return
 | 
						|
 | 
						|
  if (to.path === '/signin/callback')
 | 
						|
    return
 | 
						|
 | 
						|
  if (isHydrated.value)
 | 
						|
    return handleAuth(to)
 | 
						|
 | 
						|
  onHydrated(() => handleAuth(to))
 | 
						|
})
 | 
						|
 | 
						|
function handleAuth(to: RouteLocationNormalized) {
 | 
						|
  if (to.path === '/') {
 | 
						|
    // Installed PWA shortcut to notifications
 | 
						|
    if (to.query['notifications-pwa-shortcut'] !== undefined) {
 | 
						|
      if (currentUser.value)
 | 
						|
        return navigateTo('/notifications')
 | 
						|
      else
 | 
						|
        return navigateTo(`/${currentServer.value}/public/local`)
 | 
						|
    }
 | 
						|
 | 
						|
    // Installed PWA shortcut to local
 | 
						|
    if (to.query['local-pwa-shortcut'] !== undefined)
 | 
						|
      return navigateTo(`/${currentServer.value}/public/local`)
 | 
						|
  }
 | 
						|
 | 
						|
  if (!currentUser.value) {
 | 
						|
    if (to.path === '/home' && to.query['share-target'] !== undefined)
 | 
						|
      return navigateTo('/share-target')
 | 
						|
    else
 | 
						|
      return navigateTo(`/${currentServer.value}/public/local`)
 | 
						|
  }
 | 
						|
 | 
						|
  if (to.path === '/')
 | 
						|
    return navigateTo('/home')
 | 
						|
}
 |