Fixes and tickets

This commit is contained in:
Thomas Demirdjian
2025-10-28 15:43:18 +01:00
parent 2599a25d77
commit d1be3c19a2
31 changed files with 6663 additions and 795 deletions
+44 -9
View File
@@ -17,21 +17,28 @@ export default (props) => {
const [currentUserData] = useGlobal("currentUserData");
const [, setTooltip] = useGlobal("_tooltip");
const [isSwitch, setIsSwitch] = useState(false);
const [isPushSwitch, setIsPushSwitch] = useState(false);
const [isEmailSwitch, setIsEmailSwitch] = useState(false);
useEffect(() => {
setIsSwitch(!!currentUserData?.notifications);
setIsPushSwitch(!!currentUserData?.notifications);
}, [currentUserData?.notifications]);
const onToggle = async (next) => {
useEffect(() => {
setIsEmailSwitch(!!currentUserData?.emailNotifications);
}, [currentUserData?.emailNotifications]);
const updateNotificationPreference = async (next, field, setState) => {
try {
setIsSwitch(next);
setState(next);
const uid = currentUID || firebase.auth().currentUser?.uid;
if (!uid) return;
await usersRef.doc(uid).set({ notifications: next }, { merge: true });
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) {
setIsSwitch(!next);
setState(!next);
setTooltip({
type: "error",
text: e?.message || "Enregistrement impossible",
@@ -39,6 +46,12 @@ export default (props) => {
}
};
const onTogglePush = (next) =>
updateNotificationPreference(next, "notifications", setIsPushSwitch);
const onToggleEmail = (next) =>
updateNotificationPreference(next, "emailNotifications", setIsEmailSwitch);
return (
<Page
headerType="NAVIGATE"
@@ -74,9 +87,9 @@ export default (props) => {
fontFamily: FONT_FAMILY.HelveticaNeueMedium,
}}
>
Notifications
Notifications push
</Text>
<Switch value={isSwitch} setValue={onToggle} />
<Switch value={isPushSwitch} setValue={onTogglePush} />
</View>
<Text
style={{
@@ -88,6 +101,28 @@ export default (props) => {
Nous tencourageons à activer les notifications pour découvrir les
derniers classements, les nouveaux sons et les meilleurs playbacks.
</Text>
<View style={Style.containerSpaceBetween}>
<Text
style={{
fontSize: 20,
color: Palette.white,
fontFamily: FONT_FAMILY.HelveticaNeueMedium,
}}
>
Notifications par email
</Text>
<Switch value={isEmailSwitch} setValue={onToggleEmail} />
</View>
<Text
style={{
fontSize: 12,
color: Palette.white,
fontFamily: FONT_FAMILY.InterRegular,
}}
>
Reste informé en recevant nos nouveautés et rappels directement dans
ta boîte mail.
</Text>
</BlurView>
</View>
</Page>