diff --git a/src/layouts/Page.js b/src/layouts/Page.js
index 132ab72..f97e949 100644
--- a/src/layouts/Page.js
+++ b/src/layouts/Page.js
@@ -35,6 +35,7 @@ export default ({
headerTitleStyle = {},
hideBackButton = false,
width = undefined,
+ maxWidth = null,
}) => {
// const { currentUID } = useUserData();
@@ -73,6 +74,7 @@ export default ({
paddingBottom: 0,
...(isWeb ? { maxHeight: "100svh" } : {}),
width: computedWidth,
+ maxWidth: maxWidth ? maxWidth : null,
alignSelf: isWeb ? "center" : "auto",
...containerStyle,
}}
diff --git a/src/navigation/BottomTab.js b/src/navigation/BottomTab.js
index 1ea7678..920a466 100644
--- a/src/navigation/BottomTab.js
+++ b/src/navigation/BottomTab.js
@@ -11,7 +11,7 @@ import TabBar from "./TabBar";
import { Platform } from "react-native";
import HitParade from "../screens/HitParade/HitParade.js";
-import Library from "../screens/Library/Library.js";
+import Library from "../screens/Library/Library";
import Playbacks from "../screens/Playbacks/Playbacks";
import Profile from "../screens/Profile/Profile.js";
import HomeStack from "./HomeStack";
diff --git a/src/screens/Library/AllMyPlaylist.web.js b/src/screens/Library/AllMyPlaylist.web.js
index 2c9bbe5..f24fd8c 100644
--- a/src/screens/Library/AllMyPlaylist.web.js
+++ b/src/screens/Library/AllMyPlaylist.web.js
@@ -47,19 +47,6 @@ const AllMyPlaylist = ({ route }) => {
backgroundImg={background.libraryBG}
title="Mes Playlists"
width={"80%"}
- rightComponent={() => (
-
- SheetManager.show("Playlist", { payload: { startAtCreate: true } })
- }
- >
-
-
- )}
contentContainerStyle={{
paddingBottom: gutters * 2,
}}
diff --git a/src/screens/Library/Library.js b/src/screens/Library/Library.js
index fd76250..06a71a4 100644
--- a/src/screens/Library/Library.js
+++ b/src/screens/Library/Library.js
@@ -1,22 +1,28 @@
-import { View, Image, ScrollView, Pressable, Platform } from 'react-native';
-import React from 'react';
-import Page from '../../layouts/Page';
-import { background, icons } from '../../assets';
-import SearchBar from '../../components/SearchBar';
-import MyMusic from './components/MyMusic';
-import BackTracks from './components/BackTracks';
-import MyClips from './components/MyClips';
-import LikedMusic from './components/LikedMusic';
-import LikedPlayback from './components/LikedPlayback';
-import LikedClips from './components/LikedClips';
-import { responsiveHeight } from 'react-native-responsive-dimensions';
-import MyPlaylist from './components/MyPlaylist';
-import { navigate } from '../../navigation/NavigationService';
-import { Routes } from '../../navigation';
-import { useUser } from '../../providers/UserDataProvider';
-import { Text } from 'react-native';
-import { Palette } from '../../styles';
-import { FONT_FAMILY } from '../../styles/Fonts';
+import React from "react";
+import {
+ Image,
+ Platform,
+ Pressable,
+ ScrollView,
+ Text,
+ View,
+} from "react-native";
+import { responsiveHeight } from "react-native-responsive-dimensions";
+import { background, icons } from "../../assets";
+import SearchBar from "../../components/SearchBar";
+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 BackTracks from "./components/BackTracks";
+import LikedClips from "./components/LikedClips";
+import LikedMusic from "./components/LikedMusic";
+import LikedPlayback from "./components/LikedPlayback";
+import MyClips from "./components/MyClips";
+import MyMusic from "./components/MyMusic";
+import MyPlaylist from "./components/MyPlaylist";
const Library = () => {
const {
@@ -49,9 +55,9 @@ const Library = () => {
hasLikedClips;
return (
-
+
-
+
navigate(Routes.Research)}>
{
flexGrow: 1,
gap: 20,
paddingBottom: responsiveHeight(20),
- paddingTop: Platform.OS !== 'android' ? 20 : 0,
+ paddingTop: Platform.OS !== "android" ? 20 : 0,
}}
- showsVerticalScrollIndicator={false}>
+ showsVerticalScrollIndicator={false}
+ >
{hasMyMusic && }
{hasBackTracks && }
{hasLikedMusic && }
@@ -82,18 +89,20 @@ const Library = () => {
+ }}
+ >
+ textAlign: "center",
+ }}
+ >
Rien n'est disponible encore ici
diff --git a/src/screens/Library/Library.web.js b/src/screens/Library/Library.web.js
new file mode 100644
index 0000000..0ea11ff
--- /dev/null
+++ b/src/screens/Library/Library.web.js
@@ -0,0 +1,157 @@
+import React from "react";
+import {
+ Image,
+ Platform,
+ Pressable,
+ ScrollView,
+ Text,
+ View,
+} from "react-native";
+import { responsiveHeight } from "react-native-responsive-dimensions";
+import { background, icons } from "../../assets";
+import SearchBar from "../../components/SearchBar";
+import Page from "../../layouts/Page";
+import { Routes } from "../../navigation";
+import { navigate } from "../../navigation/NavigationService";
+import { useUser } from "../../providers/UserDataProvider";
+import { Palette, Style } from "../../styles";
+import { FONT_FAMILY } from "../../styles/Fonts";
+import BackTracks from "./components/BackTracks";
+import LikedClips from "./components/LikedClips";
+import LikedMusic from "./components/LikedMusic";
+import LikedPlayback from "./components/LikedPlayback";
+import MyClips from "./components/MyClips";
+import MyMusic from "./components/MyMusic";
+import MyPlaylist from "./components/MyPlaylist";
+const Library = () => {
+ const {
+ userProjects = [],
+ userPlaybacks = [],
+ userLikedProjects = [],
+ userLikedPlaybacks = [],
+ userPlaylists = [],
+ } = useUser() || {};
+
+ const hasMyMusic = Array.isArray(userProjects) && userProjects.length > 0;
+ const hasBackTracks =
+ Array.isArray(userPlaybacks) && userPlaybacks.length > 0;
+ const hasLikedMusic =
+ Array.isArray(userLikedProjects) && userLikedProjects.length > 0;
+ const hasLikedPlayback =
+ Array.isArray(userLikedPlaybacks) && userLikedPlaybacks.length > 0;
+ const hasPlaylists = Array.isArray(userPlaylists) && userPlaylists.length > 0;
+
+ const hasMyClips = false; // À modifier quand les vraies données seront disponibles
+ const hasLikedClips = false; // À modifier quand les vraies données seront disponibles
+
+ const hasAnySection =
+ hasMyMusic ||
+ hasBackTracks ||
+ hasLikedMusic ||
+ hasLikedPlayback ||
+ hasPlaylists ||
+ hasMyClips ||
+ hasLikedClips;
+
+ return (
+
+
+
+ navigate(Routes.Research)}>
+ navigate(Routes.Research),
+ }}
+ />
+
+
+
+
+
+ {hasMyMusic && (
+
+
+
+ )}
+ {hasPlaylists && (
+
+
+
+ )}
+
+
+
+ {hasBackTracks && (
+
+
+
+ )}
+ {hasMyClips && (
+
+
+
+ )}
+
+
+
+ {hasLikedMusic && (
+
+
+
+ )}
+ {hasLikedPlayback && (
+
+
+
+ )}
+
+
+ {hasLikedClips && }
+
+ {!hasAnySection && (
+
+
+ Rien n'est disponible encore ici
+
+
+ )}
+
+
+
+ );
+};
+
+export default Library;
diff --git a/src/screens/Library/components/LikedMusic.js b/src/screens/Library/components/LikedMusic.js
index 90e4e48..578f12a 100644
--- a/src/screens/Library/components/LikedMusic.js
+++ b/src/screens/Library/components/LikedMusic.js
@@ -7,19 +7,20 @@ import {
useWindowDimensions,
} from "react-native";
import { img } from "../../../assets";
+import useLayoutType from "../../../hooks/useLayoutType";
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, 3)
: [];
const { width: screenWidth } = useWindowDimensions();
+ const { isWeb } = useLayoutType();
const [containerWidth, setContainerWidth] = useState(screenWidth);
- const numColumns = 3;
+ const numColumns = isWeb ? 2 : 3;
const gap = 8;
const itemWidth = Math.max(
0,
@@ -42,7 +43,7 @@ const LikedMusic = () => {
data={items}
numColumns={numColumns}
key={numColumns}
- contentContainerStyle={{}}
+ contentContainerStyle={{ gap: gap }}
columnWrapperStyle={numColumns > 1 ? { gap } : null}
keyExtractor={(item) => item.id}
renderItem={({ item }) => (