Files
musicland/src/utils/authRedirect.js
T
2026-01-12 16:01:32 +01:00

41 lines
974 B
JavaScript

import { getGlobal } from 'reactn'
import { navigate } from '../navigation/NavigationService'
import { Routes } from '../navigation/Routes'
const redirectToRegister = () => {
try {
const activeRoute = getGlobal()?.activeRouteName
if (activeRoute === Routes.Register) {
return
}
} catch (error) {
console.warn('authRedirect: unable to read active route', error)
}
navigate(Routes.Register)
}
export const ensureAuthenticated = (currentUID, options = {}) => {
const { onIntercept } = options || {}
if (currentUID) {
return true
}
try {
if (typeof onIntercept === 'function') {
onIntercept()
}
} catch (error) {
console.warn('authRedirect: onIntercept error', error)
}
redirectToRegister()
return false
}
export const withAuthGuard = async (currentUID, handler, options = {}) => {
if (!ensureAuthenticated(currentUID, options)) {
return
}
return handler?.()
}
export default ensureAuthenticated