From 0699ac9ea8a7fe86fa409a1ebdff97e1f536cb69 Mon Sep 17 00:00:00 2001 From: leon-morival Date: Fri, 29 Aug 2025 13:19:10 +0200 Subject: [PATCH] minor fix --- src/components/MoreMenu.js | 181 +++++++++++-------- src/screens/Library/MusicDetails.js | 35 ++-- src/screens/Library/components/LikedMusic.js | 32 +++- src/screens/Library/components/MusicCard.js | 1 - src/screens/Profile/Profile.js | 59 +++--- src/screens/Profile/SingerProfile.js | 34 ++-- 6 files changed, 193 insertions(+), 149 deletions(-) diff --git a/src/components/MoreMenu.js b/src/components/MoreMenu.js index aaf6c7a..5c77b71 100644 --- a/src/components/MoreMenu.js +++ b/src/components/MoreMenu.js @@ -2,9 +2,9 @@ import { BlurView } from "expo-blur"; import React from "react"; import { Platform, Pressable, Text, View } from "react-native"; import { SheetManager } from "react-native-actions-sheet"; +import useMinuit from "react-native-minuit/src/hooks/useMinuit"; import Animated, { Easing, FadeIn, FadeOut } from "react-native-reanimated"; import { arrayRemove, playlistsRef } from "../config/firebase"; -import useMinuit from "react-native-minuit/src/hooks/useMinuit"; import { Palette } from "../styles"; import { FONT_FAMILY } from "../styles/Fonts"; @@ -17,8 +17,8 @@ const MoreMenu = ({ projectId = null, extraItems = [], }) => { - if (!visible) return null; const { setTooltip } = useMinuit(); + if (!visible) return null; const removeFromPlaylist = async () => { try { @@ -30,7 +30,10 @@ const MoreMenu = ({ } } catch (e) { console.log("Remove from playlist error", e?.message); - setTooltip({ type: "error", text: e?.message || "Suppression impossible" }); + setTooltip({ + type: "error", + text: e?.message || "Suppression impossible", + }); } finally { onClose?.(); } @@ -46,78 +49,35 @@ const MoreMenu = ({ }; return ( - - - {inPlaylist && ( - - - - Supprimer de la playlist - - - - )} - - - - - Ajouter à une playlist - - - - - {Array.isArray(extraItems) && - extraItems.map((item, idx) => ( - { - try { - item?.onPress?.(); - } finally { - onClose?.(); - } - }} - > + + + + {inPlaylist && ( + - {item?.label || "Action"} + Supprimer de la playlist - ))} - - + )} + + + + + Ajouter à une playlist + + + + + {Array.isArray(extraItems) && + extraItems.map((item, idx) => ( + { + try { + item?.onPress?.(); + } finally { + onClose?.(); + } + }} + > + + + {item?.label || "Action"} + + + + ))} + + + ); }; diff --git a/src/screens/Library/MusicDetails.js b/src/screens/Library/MusicDetails.js index 39d0208..65cda5c 100644 --- a/src/screens/Library/MusicDetails.js +++ b/src/screens/Library/MusicDetails.js @@ -1,24 +1,29 @@ +import { useRoute } from "@react-navigation/core"; +import { Audio } from "expo-av"; +import React, { useEffect, useMemo, useState } from "react"; import { - View, - Text, - ScrollView, Image, Pressable, + ScrollView, StyleSheet, + Text, + View, } from "react-native"; -import React, { useEffect, useMemo, useState } from "react"; -import Page from "../../layouts/Page"; -import { background, icons, img } from "../../assets"; -import { Palette } from "../../styles"; -import Style, { gutters, size } from "../../styles/Style"; -import { FONT_FAMILY } from "../../styles/Fonts"; -import Slider from "../../components/Slider"; -import { useRoute } from "@react-navigation/core"; import { SheetManager } from "react-native-actions-sheet"; -import firebase, { usersRef, projectsRef, arrayUnion, arrayRemove } from "../../config/firebase"; import { useGlobal } from "reactn"; +import { background, icons, img } from "../../assets"; +import Slider from "../../components/Slider"; +import firebase, { + arrayRemove, + arrayUnion, + projectsRef, + usersRef, +} from "../../config/firebase"; import useDataFromRef from "../../hooks/useDataFromRef"; -import { Audio } from "expo-av"; +import Page from "../../layouts/Page"; +import { Palette } from "../../styles"; +import { FONT_FAMILY } from "../../styles/Fonts"; +import Style, { gutters, size } from "../../styles/Style"; const MusicDetails = () => { const params = useRoute().params || {}; @@ -88,7 +93,7 @@ const MusicDetails = () => { const dur = status.durationMillis || 0; setProgressInfo({ pos, dur }); setIsPlaying(!!status.isPlaying); - }, + } ); soundRef.current = sound; } catch (e) { @@ -239,7 +244,7 @@ const MusicDetails = () => { } > diff --git a/src/screens/Library/components/LikedMusic.js b/src/screens/Library/components/LikedMusic.js index 24660c5..bad262d 100644 --- a/src/screens/Library/components/LikedMusic.js +++ b/src/screens/Library/components/LikedMusic.js @@ -1,17 +1,22 @@ -import { View, Image, FlatList, Pressable } from "react-native"; import React from "react"; -import CardContainer from "./CardContainer"; -import { Style } from "../../../styles"; +import { FlatList, Image, Pressable, useWindowDimensions } from "react-native"; import { img } from "../../../assets"; -import { navigate } from "../../../navigation/NavigationService"; import { Routes } from "../../../navigation"; +import { navigate } from "../../../navigation/NavigationService"; import { useUser } from "../../../providers/UserDataProvider"; +import CardContainer from "./CardContainer"; const LikedMusic = () => { const { userLikedProjects = [] } = useUser(); const items = Array.isArray(userLikedProjects) ? userLikedProjects.slice(0, 6) : []; + const { width: screenWidth } = useWindowDimensions(); + const numColumns = 3; + const gap = 6; + const containerGap = 10; + const totalGap = gap * (numColumns - 1) + containerGap * 2; + const itemWidth = (screenWidth - totalGap) / numColumns; return ( { item.id} renderItem={({ item }) => ( navigate(Routes.MusicDetails, { projectId: item.id })} + onPress={() => + navigate(Routes.MusicDetails, { projectId: item.id }) + } > )} diff --git a/src/screens/Library/components/MusicCard.js b/src/screens/Library/components/MusicCard.js index b9b08ac..4af0435 100644 --- a/src/screens/Library/components/MusicCard.js +++ b/src/screens/Library/components/MusicCard.js @@ -26,7 +26,6 @@ const MusicCard = ({ }) => { const [currentUID] = useGlobal("currentUID"); const [selected, setSelected] = useState(false); - const [open, setOpen] = useState(false); const [layout, setLayout] = useState(null); const [menuPos, setMenuPos] = useState(0); diff --git a/src/screens/Profile/Profile.js b/src/screens/Profile/Profile.js index e7dff84..4b3ca1a 100644 --- a/src/screens/Profile/Profile.js +++ b/src/screens/Profile/Profile.js @@ -1,31 +1,31 @@ -import { - View, - Text, - Pressable, - Image, - FlatList, - StyleSheet, - Platform, -} from "react-native"; -import React, { useState } from "react"; -import Page from "../../layouts/Page"; -import { background, icons, img } from "../../assets"; import { BlurView } from "expo-blur"; +import React, { useState } from "react"; +import { + FlatList, + Image, + Platform, + Pressable, + ScrollView, + StyleSheet, + Text, + View, +} from "react-native"; +import { SheetManager } from "react-native-actions-sheet"; import { responsiveHeight } from "react-native-responsive-dimensions"; -import Style, { gutters, size } from "../../styles/Style"; +import { useGlobal } from "reactn"; +import { background, icons, img } from "../../assets"; +import alert from "../../components/Alert"; +import BorderGradient from "../../components/BorderGradient/BorderGradient"; +import MoreMenu from "../../components/MoreMenu"; +import { projectsRef } from "../../config/firebase"; +import Page from "../../layouts/Page"; +import { Routes } from "../../navigation"; +import { navigate } from "../../navigation/NavigationService"; +import { useUser } from "../../providers/UserDataProvider"; import { Palette } from "../../styles"; import { FONT_FAMILY } from "../../styles/Fonts"; -import BorderGradient from "../../components/BorderGradient/BorderGradient"; +import Style, { gutters, size } from "../../styles/Style"; import MusicCard from "../Library/components/MusicCard"; -import MoreMenu from "../../components/MoreMenu"; -import { useUser } from "../../providers/UserDataProvider"; -import { SheetManager } from "react-native-actions-sheet"; -import { navigate } from "../../navigation/NavigationService"; -import { Routes } from "../../navigation"; -import { useGlobal } from "reactn"; -import Animated, { Easing, FadeIn, FadeOut } from "react-native-reanimated"; -import alert from "../../components/Alert"; -import { projectsRef } from "../../config/firebase"; const Profile = () => { const [selected, setSelected] = useState("Chansons"); @@ -53,7 +53,7 @@ const Profile = () => { }} rightComponent={() => ( SheetManager.show("ProfileSettings")}> - + )} > @@ -183,7 +183,7 @@ const Profile = () => { )} {selected === "Chansons" && ( - + { try { if (!selectedProjectId) return; await projectsRef.doc(selectedProjectId).delete(); - setTooltip({ type: "success", text: "Projet supprimé" }); + setTooltip({ + type: "success", + text: "Projet supprimé", + }); } catch (e) { setTooltip({ type: "error", @@ -239,12 +242,12 @@ const Profile = () => { }, }, ], - { cancelable: true }, + { cancelable: true } ), }, ]} /> - + )} diff --git a/src/screens/Profile/SingerProfile.js b/src/screens/Profile/SingerProfile.js index c8af0f6..fc5a7f9 100644 --- a/src/screens/Profile/SingerProfile.js +++ b/src/screens/Profile/SingerProfile.js @@ -1,22 +1,22 @@ -import { - View, - Text, - Pressable, - Image, - StyleSheet, - FlatList, - Platform, -} from "react-native"; -import React, { useState } from "react"; -import Page from "../../layouts/Page"; -import { background, icons, img } from "../../assets"; -import { gutters, Palette } from "../../styles"; import { BlurView } from "expo-blur"; -import Style, { size } from "../../styles/Style"; +import React, { useState } from "react"; +import { + FlatList, + Image, + Platform, + Pressable, + StyleSheet, + Text, + View, +} from "react-native"; import { responsiveHeight } from "react-native-responsive-dimensions"; -import { FONT_FAMILY } from "../../styles/Fonts"; -import GradientButton from "../../components/GradientButton"; +import { background, icons, img } from "../../assets"; import BorderGradient from "../../components/BorderGradient/BorderGradient"; +import GradientButton from "../../components/GradientButton"; +import Page from "../../layouts/Page"; +import { gutters, Palette } from "../../styles"; +import { FONT_FAMILY } from "../../styles/Fonts"; +import Style, { size } from "../../styles/Style"; import MusicCard from "../Library/components/MusicCard"; const SingerProfile = () => { @@ -42,7 +42,7 @@ const SingerProfile = () => { }} rightComponent={() => ( - + )} >