diff --git a/src/assets/UI/libraryBgWeb.png b/src/assets/UI/libraryBgWeb.png
index e679c67..7110bcf 100644
Binary files a/src/assets/UI/libraryBgWeb.png and b/src/assets/UI/libraryBgWeb.png differ
diff --git a/src/components/player/GlobalAudioPlayer.js b/src/components/player/GlobalAudioPlayer.js
index d47ce77..9e165e1 100644
--- a/src/components/player/GlobalAudioPlayer.js
+++ b/src/components/player/GlobalAudioPlayer.js
@@ -5,8 +5,8 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
import { icons, img } from "../../assets";
import { arrayRemove, arrayUnion, projectsRef } from "../../config/firebase";
-import { isWeb } from "../../hooks/useLayoutType";
import useDataFromRef from "../../hooks/useDataFromRef";
+import { isWeb } from "../../hooks/useLayoutType";
import usePlayer from "../../hooks/usePlayer";
import { useUser } from "../../providers/UserDataProvider";
import { gutters, Palette } from "../../styles";
@@ -65,11 +65,9 @@ const GlobalAudioPlayer = () => {
return likedByList.includes(currentUID);
}, [likedByList, projectId, currentUID]);
- const effectiveIsLiked =
- pendingLike !== null ? pendingLike : likedFromDoc;
+ const effectiveIsLiked = pendingLike !== null ? pendingLike : likedFromDoc;
- const isLikeProcessing =
- pendingLike !== null && pendingLike !== likedFromDoc;
+ const isLikeProcessing = pendingLike !== null && pendingLike !== likedFromDoc;
useEffect(() => {
setPendingLike(null);
@@ -96,12 +94,7 @@ const GlobalAudioPlayer = () => {
} catch (_error) {
setPendingLike(null);
}
- }, [
- currentUID,
- effectiveIsLiked,
- isLikeProcessing,
- projectId,
- ]);
+ }, [currentUID, effectiveIsLiked, isLikeProcessing, projectId]);
const insets = useSafeAreaInsets();
@@ -130,7 +123,7 @@ const GlobalAudioPlayer = () => {
const TAB_BAR_HEIGHT = 64;
const GAP_WITH_TAB = 8;
- const bottomOffset = (isWeb ? gutters : 3) + TAB_BAR_HEIGHT + GAP_WITH_TAB;
+ const bottomOffset = (isWeb ? gutters : 5) + TAB_BAR_HEIGHT + GAP_WITH_TAB;
if (!hasTrack) return null;
diff --git a/src/navigation/TabBar.js b/src/navigation/TabBar.js
index 1ae0195..a5b1fc7 100644
--- a/src/navigation/TabBar.js
+++ b/src/navigation/TabBar.js
@@ -15,7 +15,7 @@ const TabBar = ({ state = {}, descriptors = {}, navigation = {} }) => {
{
}, [dropdownVisible, closeDropdown]);
return (
-
+
@@ -207,7 +211,7 @@ const Library = () => {
showsVerticalScrollIndicator={false}
>
{
-
+
@@ -235,7 +248,7 @@ const Library = () => {
-
+
{!hasAnySection && (
{
const { userPlaybacks } = useUserData();
@@ -40,7 +44,7 @@ const BackTracks = () => {
onPressPlus={() => navigate(Routes.WritingLyrics)}
>
- {items.length > 0 && (
+ {items.length > 0 ? (
setContainerWidth(e.nativeEvent.layout.width)}
data={items}
@@ -67,6 +71,24 @@ const BackTracks = () => {
)}
/>
+ ) : (
+
+
+ Aucun playback pour l'instant
+
+ navigate(Routes.WritingLyrics)}
+ title=" Créer un playback"
+ >
+
)}
diff --git a/src/screens/Library/components/LikedMusic.js b/src/screens/Library/components/LikedMusic.js
index e31f879..863cca4 100644
--- a/src/screens/Library/components/LikedMusic.js
+++ b/src/screens/Library/components/LikedMusic.js
@@ -4,14 +4,19 @@ import {
FlatList,
Pressable,
Image as RNImage,
+ Text,
useWindowDimensions,
+ View,
} from "react-native";
import { img } from "../../../assets";
+import GradientButton from "../../../components/GradientButton";
import useLayoutType from "../../../hooks/useLayoutType";
import useNavigateToMusicDetails from "../../../hooks/useNavigateToMusicDetails";
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 CardContainer from "./CardContainer";
const LikedMusic = () => {
const { userLikedProjects = [] } = useUser();
@@ -40,51 +45,71 @@ const LikedMusic = () => {
}
onPressPlus={() => navigate(Routes.WritingLyrics)}
>
- setContainerWidth(e.nativeEvent.layout.width)}
- scrollEnabled={false}
- data={items}
- numColumns={numColumns}
- key={numColumns}
- contentContainerStyle={{ gap: gap }}
- columnWrapperStyle={numColumns > 1 ? { gap } : null}
- keyExtractor={(item) => item.id}
- renderItem={({ item }) => (
-
- navigateToMusicDetails({
- projectId: item.id,
- songUrl: item?.songUrl,
- })
- }
+ {items.length > 0 ? (
+ setContainerWidth(e.nativeEvent.layout.width)}
+ scrollEnabled={false}
+ data={items}
+ numColumns={numColumns}
+ key={numColumns}
+ contentContainerStyle={{ gap: gap }}
+ columnWrapperStyle={numColumns > 1 ? { gap } : null}
+ keyExtractor={(item) => item.id}
+ renderItem={({ item }) => (
+
+ navigateToMusicDetails({
+ projectId: item.id,
+ songUrl: item?.songUrl,
+ })
+ }
+ >
+ {item?.coverUrl ? (
+
+ ) : (
+
+ )}
+
+ )}
+ />
+ ) : (
+
+
- {item?.coverUrl ? (
-
- ) : (
-
- )}
-
- )}
- />
+ Aucun musique likée pour l'instant
+
+ navigate(Routes.WritingLyrics)}
+ title=" Créer une musique"
+ >
+
+ )}
);
};
diff --git a/src/screens/Library/components/LikedPlayback.js b/src/screens/Library/components/LikedPlayback.js
index 56c9b0f..d8a86fe 100644
--- a/src/screens/Library/components/LikedPlayback.js
+++ b/src/screens/Library/components/LikedPlayback.js
@@ -3,13 +3,17 @@ import {
FlatList,
Image,
Pressable,
+ Text,
View,
useWindowDimensions,
} from "react-native";
+import GradientButton from "../../../components/GradientButton";
import useLayoutType from "../../../hooks/useLayoutType";
import { Routes } from "../../../navigation";
import { navigate } from "../../../navigation/NavigationService";
import { useUserData } from "../../../providers/UserDataProvider";
+import { Palette } from "../../../styles";
+import { FONT_FAMILY } from "../../../styles/Fonts";
import CardContainer from "./CardContainer";
const LikedPlayback = () => {
const { isWeb } = useLayoutType();
@@ -38,7 +42,7 @@ const LikedPlayback = () => {
onPressPlus={() => navigate(Routes.WritingLyrics)}
>
- {items.length > 0 && (
+ {items.length > 0 ? (
setContainerWidth(e.nativeEvent.layout.width)}
data={items}
@@ -65,6 +69,24 @@ const LikedPlayback = () => {
)}
/>
+ ) : (
+
+
+ Aucun playback liké pour l'instant
+
+ navigate(Routes.WritingLyrics)}
+ title=" Créer un playback"
+ >
+
)}
diff --git a/src/screens/Playbacks/components/PlaybackItem.web.js b/src/screens/Playbacks/components/PlaybackItem.web.js
index 862560d..5cee8db 100644
--- a/src/screens/Playbacks/components/PlaybackItem.web.js
+++ b/src/screens/Playbacks/components/PlaybackItem.web.js
@@ -1,4 +1,3 @@
-import useSharedAudioPlayer from "../../../hooks/useSharedAudioPlayer";
import { BlurView } from "expo-blur";
import React, {
useCallback,
@@ -24,6 +23,7 @@ import {
projectsRef,
usersRef,
} from "../../../config/firebase";
+import useSharedAudioPlayer from "../../../hooks/useSharedAudioPlayer";
import { Routes } from "../../../navigation";
import { navigate } from "../../../navigation/NavigationService";
import { useUser } from "../../../providers/UserDataProvider";
@@ -145,7 +145,11 @@ const PlaybackItem = ({
}, [item?.likedBy, currentUID]);
const audioPlayer = useSharedAudioPlayer(audioSource || undefined, {
- id: item?.id ? `playback-${item.id}` : audioSource?.uri ? `playback-${audioSource.uri}` : undefined,
+ id: item?.id
+ ? `playback-${item.id}`
+ : audioSource?.uri
+ ? `playback-${audioSource.uri}`
+ : undefined,
title: typeof item?.title === "string" ? item.title : "",
artist: typeof item?.userName === "string" ? item.userName : "",
artwork: item?.coverUrl || null,
@@ -521,13 +525,16 @@ const PlaybackItem = ({
navigate(Routes.SingerProfile, { userId: item?.userId });
}}
>
- {owner?.profilePictureURL ? (
+ {owner?.profilePictureURL && (
- ) : (
-
)}
{owner?.id && currentUID && owner.id !== currentUID && (