import React, { useState } from 'react' import { Text, View } from 'react-native' import { useGlobal } from 'reactn' import { background } from '../assets' import GradientButton from '../components/GradientButton' import { Input } from '../components/Input' import ItemContainer from '../components/ItemContainer/ItemContainer' import firebase, { usersRef } from '../config/firebase' import Page from '../layouts/Page' import { isWeb } from '../hooks/useLayoutType' import { Routes } from '../navigation' import { navigate } from '../navigation/NavigationService' import { Palette } from '../styles' import { FONT_FAMILY } from '../styles/Fonts' const CreatePseudo = () => { const [userName, setUserName] = useState('') const [loading, setLoading] = useState(false) const [, setTooltip] = useGlobal('_tooltip') const onCreate = async () => { const raw = userName || '' const val = raw.trim() if (!val) return try { setLoading(true) const uid = firebase.auth().currentUser?.uid if (!uid) { return navigate(Routes.Login) } // Check uniqueness (case-insensitive) const lower = val.toLowerCase() const snap = await usersRef.where('userNameLower', '==', lower).limit(1).get() if (!snap.empty && snap.docs[0].id !== uid) { setTooltip({ text: 'Ce pseudo est déjà pris', type: 'error' }) return } await usersRef.doc(uid).set( { userName: val, userNameLower: lower, updatedAt: firebase.firestore.FieldValue.serverTimestamp(), createdAt: firebase.firestore.FieldValue.serverTimestamp(), email: firebase.auth().currentUser?.email || null, }, { merge: true } ) setTooltip({ text: `Bienvenue ${val}`, type: 'success' }) navigate(Routes.BottomTab) } catch (e) { console.log('CreatePseudo error', e?.message) setTooltip({ text: e?.message || 'Enregistrement impossible', type: 'error', }) } finally { setLoading(false) } } return ( Choisis ton pseudo Visible par les autres utilisateurs. ) } export default CreatePseudo