74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
import firebase, { usersRef } from '../config/firebase'
|
|
import { Routes } from '../navigation/Routes'
|
|
|
|
export const MUSICLAND_LAUNCH_DATE = null
|
|
|
|
export const isGlobalListeningLaunchPeriodActive = (now = new Date()) => {
|
|
if (!MUSICLAND_LAUNCH_DATE) {
|
|
return false
|
|
}
|
|
|
|
const launchDate = new Date(MUSICLAND_LAUNCH_DATE)
|
|
if (Number.isNaN(launchDate.getTime())) {
|
|
return false
|
|
}
|
|
|
|
const launchPeriodEnd = new Date(launchDate)
|
|
launchPeriodEnd.setMonth(launchPeriodEnd.getMonth() + 1)
|
|
|
|
return now >= launchDate && now < launchPeriodEnd
|
|
}
|
|
|
|
export const getRouteAfterAuthentication = (userData = {}) =>
|
|
userData?.registrationFlowRequired === true
|
|
? Routes.RegistrationChoice
|
|
: Routes.BottomTab
|
|
|
|
export const getExperienceReset = (experience) => {
|
|
if (experience === 'listen') {
|
|
return {
|
|
index: 0,
|
|
routes: [
|
|
{
|
|
name: Routes.BottomTab,
|
|
params: { screen: Routes.HitParade },
|
|
},
|
|
],
|
|
}
|
|
}
|
|
|
|
return {
|
|
index: 0,
|
|
routes: [
|
|
{
|
|
name: Routes.BottomTab,
|
|
params: {
|
|
screen: Routes.HomeStack,
|
|
params: { screen: Routes.Home },
|
|
},
|
|
},
|
|
],
|
|
}
|
|
}
|
|
|
|
export const completeRegistrationFlow = async (experience) => {
|
|
const uid = firebase.auth().currentUser?.uid
|
|
if (!uid) {
|
|
throw new Error('Aucun utilisateur connecté')
|
|
}
|
|
|
|
if (experience !== 'listen' && experience !== 'creation') {
|
|
throw new Error('Expérience MusicLand inconnue')
|
|
}
|
|
|
|
await usersRef.doc(uid).set(
|
|
{
|
|
registrationFlowRequired: false,
|
|
initialExperience: experience,
|
|
registrationFlowCompletedAt: firebase.firestore.FieldValue.serverTimestamp(),
|
|
updatedAt: firebase.firestore.FieldValue.serverTimestamp(),
|
|
},
|
|
{ merge: true }
|
|
)
|
|
}
|