/* eslint-disable react/display-name */ import { BlurView } from "expo-blur"; import { useState } from "react"; import { Platform, Text, View } from "react-native"; import { responsiveHeight } from "react-native-responsive-dimensions"; import React, { useEffect, useGlobal } from "reactn"; import { background } from "../../assets"; import Switch from "../../components/Switch"; import firebase, { usersRef } from "../../config/firebase"; import { isWeb } from "../../hooks/useLayoutType"; import Page from "../../layouts/Page"; import { gutters, Palette, Style } from "../../styles"; import { FONT_FAMILY } from "../../styles/Fonts"; export default (props) => { const [currentUID] = useGlobal("currentUID"); const [currentUserData] = useGlobal("currentUserData"); const [, setTooltip] = useGlobal("_tooltip"); const [isPushSwitch, setIsPushSwitch] = useState(false); const [isEmailSwitch, setIsEmailSwitch] = useState(false); useEffect(() => { setIsPushSwitch(!!currentUserData?.notifications); }, [currentUserData?.notifications]); useEffect(() => { setIsEmailSwitch(!!currentUserData?.emailNotifications); }, [currentUserData?.emailNotifications]); const updateNotificationPreference = async (next, field, setState) => { try { setState(next); const uid = currentUID || firebase.auth().currentUser?.uid; if (!uid) { throw new Error("Utilisateur non connecté"); } await usersRef.doc(uid).set({ [field]: next }, { merge: true }); setTooltip({ type: "success", text: "Préférence enregistrée" }); } catch (e) { setState(!next); setTooltip({ type: "error", text: e?.message || "Enregistrement impossible", }); } }; const onTogglePush = (next) => updateNotificationPreference(next, "notifications", setIsPushSwitch); const onToggleEmail = (next) => updateNotificationPreference(next, "emailNotifications", setIsEmailSwitch); return ( Notifications push Nous t’encourageons à activer les notifications pour découvrir les derniers classements, les nouveaux sons et les meilleurs playbacks. Notifications par email Reste informé en recevant nos nouveautés et rappels directement dans ta boîte mail. ); };