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={() => (
-
+
)}
>