styels
This commit is contained in:
@@ -66,6 +66,8 @@ const HitParade = () => {
|
|||||||
style={{
|
style={{
|
||||||
...Style.containerRow,
|
...Style.containerRow,
|
||||||
justifyContent: "space-between",
|
justifyContent: "space-between",
|
||||||
|
gap: "10%",
|
||||||
|
width: "auto",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{/*{["Chansons", "Playbacks", "Clips"].map((item, index) => (*/}
|
{/*{["Chansons", "Playbacks", "Clips"].map((item, index) => (*/}
|
||||||
@@ -76,7 +78,7 @@ const HitParade = () => {
|
|||||||
onPress={() => setSelected(item)}
|
onPress={() => setSelected(item)}
|
||||||
tint={selected === item ? "light" : "dark"}
|
tint={selected === item ? "light" : "dark"}
|
||||||
containerStyle={{
|
containerStyle={{
|
||||||
width: 100,
|
width: "50%",
|
||||||
}}
|
}}
|
||||||
titleStyle={{
|
titleStyle={{
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
|
|||||||
@@ -525,8 +525,8 @@ export default MusicDetails;
|
|||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
img: {
|
img: {
|
||||||
width: 292,
|
width: 160,
|
||||||
height: 290,
|
height: 160,
|
||||||
borderRadius: 24,
|
borderRadius: 24,
|
||||||
alignSelf: "center",
|
alignSelf: "center",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,21 +1,47 @@
|
|||||||
import { View, Text, Image } from "react-native";
|
import React, { useState } from "react";
|
||||||
import React from "react";
|
import { FlatList, Image, Text, View, useWindowDimensions } from "react-native";
|
||||||
import { img } from "../../../assets";
|
import { useUserData } from "../../../providers/UserDataProvider";
|
||||||
import { Style } from "../../../styles";
|
import { Style } from "../../../styles";
|
||||||
import CardContainer from "./CardContainer";
|
import CardContainer from "./CardContainer";
|
||||||
|
|
||||||
const BackTracks = () => {
|
const BackTracks = () => {
|
||||||
|
const { userPlaybacks } = useUserData();
|
||||||
|
const items = Array.isArray(userPlaybacks) ? userPlaybacks.slice(0, 3) : [];
|
||||||
|
const { width: screenWidth } = useWindowDimensions();
|
||||||
|
const [containerWidth, setContainerWidth] = useState(screenWidth);
|
||||||
|
const numColumns = 3;
|
||||||
|
const gap = 8;
|
||||||
|
const itemWidth = Math.max(
|
||||||
|
0,
|
||||||
|
Math.floor((containerWidth - gap * (numColumns - 1)) / numColumns)
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CardContainer label="Mes Playbacks">
|
<CardContainer label="Mes Playbacks">
|
||||||
<View style={{ ...Style.containerRow, gap: 6 }}>
|
<View>
|
||||||
{Array.from({ length: 3 }).map((_, index) => (
|
{items.length > 0 ? (
|
||||||
<View style={{ flex: 1 }} key={index}>
|
<FlatList
|
||||||
<Image
|
onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}
|
||||||
source={img.placeholder3}
|
data={items}
|
||||||
style={{ width: "100%", height: 172, borderRadius: 10 }}
|
numColumns={numColumns}
|
||||||
/>
|
key={numColumns}
|
||||||
</View>
|
columnWrapperStyle={{ gap }}
|
||||||
))}
|
keyExtractor={(item) => item.id}
|
||||||
|
renderItem={({ item }) => (
|
||||||
|
<View style={{ width: itemWidth }} key={item.id}>
|
||||||
|
<Image
|
||||||
|
source={{ uri: item.coverUrl || "" }}
|
||||||
|
style={{
|
||||||
|
width: "100%",
|
||||||
|
height: Math.round((itemWidth * 16) / 9),
|
||||||
|
borderRadius: 10,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Text>Aucun playback pour l'instant</Text>
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
</CardContainer>
|
</CardContainer>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
import React from "react";
|
|
||||||
import { FlatList, Pressable, useWindowDimensions, Image as RNImage } from "react-native";
|
|
||||||
import { Image as ExpoImage } from "expo-image";
|
import { Image as ExpoImage } from "expo-image";
|
||||||
|
import React, { useState } from "react";
|
||||||
|
import {
|
||||||
|
FlatList,
|
||||||
|
Pressable,
|
||||||
|
Image as RNImage,
|
||||||
|
useWindowDimensions,
|
||||||
|
} from "react-native";
|
||||||
import { img } from "../../../assets";
|
import { img } from "../../../assets";
|
||||||
import { Routes } from "../../../navigation";
|
import { Routes } from "../../../navigation";
|
||||||
import { navigate } from "../../../navigation/NavigationService";
|
import { navigate } from "../../../navigation/NavigationService";
|
||||||
@@ -10,29 +15,33 @@ import CardContainer from "./CardContainer";
|
|||||||
const LikedMusic = () => {
|
const LikedMusic = () => {
|
||||||
const { userLikedProjects = [] } = useUser();
|
const { userLikedProjects = [] } = useUser();
|
||||||
const items = Array.isArray(userLikedProjects)
|
const items = Array.isArray(userLikedProjects)
|
||||||
? userLikedProjects.slice(0, 6)
|
? userLikedProjects.slice(0, 3)
|
||||||
: [];
|
: [];
|
||||||
const { width: screenWidth } = useWindowDimensions();
|
const { width: screenWidth } = useWindowDimensions();
|
||||||
|
const [containerWidth, setContainerWidth] = useState(screenWidth);
|
||||||
const numColumns = 3;
|
const numColumns = 3;
|
||||||
const gap = 6;
|
const gap = 8;
|
||||||
const containerGap = 10;
|
const itemWidth = Math.max(
|
||||||
const totalGap = gap * (numColumns - 1) + containerGap * 2;
|
0,
|
||||||
const itemWidth = (screenWidth - totalGap) / numColumns;
|
Math.floor((containerWidth - gap * (numColumns - 1)) / numColumns)
|
||||||
|
);
|
||||||
return (
|
return (
|
||||||
<CardContainer
|
<CardContainer
|
||||||
label="Musiques likées"
|
label="Musiques likées"
|
||||||
onPress={() => navigate(Routes.AllMyLikedMusic)}
|
onPress={() => navigate(Routes.AllMyLikedMusic)}
|
||||||
>
|
>
|
||||||
<FlatList
|
<FlatList
|
||||||
|
onLayout={(e) => setContainerWidth(e.nativeEvent.layout.width)}
|
||||||
scrollEnabled={false}
|
scrollEnabled={false}
|
||||||
data={items}
|
data={items}
|
||||||
numColumns={numColumns}
|
numColumns={numColumns}
|
||||||
contentContainerStyle={{ gap: containerGap }}
|
key={numColumns}
|
||||||
columnWrapperStyle={{ gap }}
|
contentContainerStyle={{}}
|
||||||
|
columnWrapperStyle={numColumns > 1 ? { gap } : null}
|
||||||
keyExtractor={(item) => item.id}
|
keyExtractor={(item) => item.id}
|
||||||
renderItem={({ item }) => (
|
renderItem={({ item }) => (
|
||||||
<Pressable
|
<Pressable
|
||||||
style={{ flex: 1 }}
|
style={{ width: itemWidth }}
|
||||||
onPress={() =>
|
onPress={() =>
|
||||||
navigate(Routes.MusicDetails, { projectId: item.id })
|
navigate(Routes.MusicDetails, { projectId: item.id })
|
||||||
}
|
}
|
||||||
@@ -45,7 +54,8 @@ const LikedMusic = () => {
|
|||||||
contentFit="cover"
|
contentFit="cover"
|
||||||
transition={100}
|
transition={100}
|
||||||
style={{
|
style={{
|
||||||
height: itemWidth - containerGap,
|
width: "100%",
|
||||||
|
height: itemWidth,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
@@ -53,7 +63,8 @@ const LikedMusic = () => {
|
|||||||
<RNImage
|
<RNImage
|
||||||
source={img.placeholder3}
|
source={img.placeholder3}
|
||||||
style={{
|
style={{
|
||||||
height: itemWidth - containerGap,
|
width: "100%",
|
||||||
|
height: itemWidth,
|
||||||
borderRadius: 10,
|
borderRadius: 10,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ const Profile = () => {
|
|||||||
setFollowers(
|
setFollowers(
|
||||||
Array.isArray(currentUserData?.followedBy)
|
Array.isArray(currentUserData?.followedBy)
|
||||||
? currentUserData.followedBy.length
|
? currentUserData.followedBy.length
|
||||||
: 0,
|
: 0
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -119,6 +119,7 @@ const Profile = () => {
|
|||||||
data={data}
|
data={data}
|
||||||
contentContainerStyle={{
|
contentContainerStyle={{
|
||||||
gap: 10,
|
gap: 10,
|
||||||
|
marginBottom: 80,
|
||||||
}}
|
}}
|
||||||
keyExtractor={(item) => item.id}
|
keyExtractor={(item) => item.id}
|
||||||
renderItem={({ item }) => (
|
renderItem={({ item }) => (
|
||||||
|
|||||||
Reference in New Issue
Block a user