diff --git a/src/FLAD/App.tsx b/src/FLAD/App.tsx index 3ce817b..29da08e 100644 --- a/src/FLAD/App.tsx +++ b/src/FLAD/App.tsx @@ -1,10 +1,12 @@ import { StatusBar } from 'expo-status-bar'; import { useState, useTransition } from 'react'; import { Animated, StyleSheet, Text, View } from 'react-native'; -import FavoritePage from './pages/favoritePage'; -import { cards as cardArray } from './FakeData/data' +import FavoritePage from './screens/favoritePage'; +import { cards as cardArray } from './data/data' +import Navigation from './navigation/Navigation'; +import { NavigationContainer } from '@react-navigation/native'; +import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; - export default function App() { // const [currentCard, setCurrentCard] = useState(cardArray); // const aIndex = useTransition(currentCard) @@ -24,7 +26,7 @@ const onSwipe = (index: number, direction: 'left' | 'right') => { }; // const [currentCard, setCurrentCard] = useState(0); - +const Stack = createBottomTabNavigator(); return ( /* @@ -39,9 +41,7 @@ const onSwipe = (index: number, direction: 'left' | 'right') => { ))} */ - - - + @@ -65,23 +65,4 @@ const onSwipe = (index: number, direction: 'left' | 'right') => { ); } -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#fff', - alignItems: 'center', - justifyContent: 'center' - }, - card: { - borderRadius : 8, - shadowRadius : 20, - shadowColor : '#' - }, - image: { - width: 320, - height: 440, - borderRadius: 18, - resizeMode : "cover", - placeholder: "assets/images/loadingPlaceholder.gif" - }, -}); \ No newline at end of file + diff --git a/src/FLAD/app.json b/src/FLAD/app.json index 7d22ae5..3474fa8 100644 --- a/src/FLAD/app.json +++ b/src/FLAD/app.json @@ -4,10 +4,10 @@ "slug": "FLAD", "version": "1.0.0", "orientation": "portrait", - "icon": "./assets/icon.png", + "icon": "./assets/icons/icon.png", "userInterfaceStyle": "light", "splash": { - "image": "./assets/splash.png", + "image": "./assets/icons/splash.png", "resizeMode": "contain", "backgroundColor": "#141414" }, @@ -22,12 +22,12 @@ }, "android": { "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", + "foregroundImage": "./assets/icons/adaptive-icon.png", "backgroundColor": "#FFFFFF" } }, "web": { - "favicon": "./assets/favicon.png" + "favicon": "./assets/icons/favicon.png" } } } diff --git a/src/FLAD/assets/adaptive-icon.png b/src/FLAD/assets/icons/adaptive-icon.png similarity index 100% rename from src/FLAD/assets/adaptive-icon.png rename to src/FLAD/assets/icons/adaptive-icon.png diff --git a/src/FLAD/assets/favicon.png b/src/FLAD/assets/icons/favicon.png similarity index 100% rename from src/FLAD/assets/favicon.png rename to src/FLAD/assets/icons/favicon.png diff --git a/src/FLAD/assets/icon.png b/src/FLAD/assets/icons/icon.png similarity index 100% rename from src/FLAD/assets/icon.png rename to src/FLAD/assets/icons/icon.png diff --git a/src/FLAD/assets/splash.png b/src/FLAD/assets/icons/splash.png similarity index 100% rename from src/FLAD/assets/splash.png rename to src/FLAD/assets/icons/splash.png diff --git a/src/FLAD/assets/jul.png b/src/FLAD/assets/images/jul.png similarity index 100% rename from src/FLAD/assets/jul.png rename to src/FLAD/assets/images/jul.png diff --git a/src/FLAD/assets/pnl.png b/src/FLAD/assets/images/pnl.png similarity index 100% rename from src/FLAD/assets/pnl.png rename to src/FLAD/assets/images/pnl.png diff --git a/src/FLAD/components/CardMusic.tsx b/src/FLAD/components/CardMusic.tsx index 81d49d7..833cd28 100644 --- a/src/FLAD/components/CardMusic.tsx +++ b/src/FLAD/components/CardMusic.tsx @@ -2,16 +2,17 @@ import React, {Component} from 'react'; import { Animated, StyleSheet, Text, View, FlatList , Image} from 'react-native'; type CustomCardMusic = { //Props - image: any; + image: ImageSource; title: string; description: string; } export default function CardMusic(CBP: CustomCardMusic) { + const source = typeof CBP.image === 'string' ? { uri: CBP.image } : CBP.image; return ( - + {CBP.title} diff --git a/src/FLAD/FakeData/data.ts b/src/FLAD/data/data.ts similarity index 100% rename from src/FLAD/FakeData/data.ts rename to src/FLAD/data/data.ts diff --git a/src/FLAD/model/Music.ts b/src/FLAD/model/Music.ts new file mode 100644 index 0000000..db657b8 --- /dev/null +++ b/src/FLAD/model/Music.ts @@ -0,0 +1,35 @@ +export default class Music { + private _title: string; + private _bio: string; + private _image: ImageSource; + + constructor(title: string, bio: string, image: ImageSource) { + this._title = title; + this._bio = bio; + this._image = image; + } + + get title(): string { + return this._title; + } + + set title(value: string) { + this._title = value; + } + + get bio(): string { + return this._bio; + } + + set bio(value: string) { + this._bio = value; + } + + get image(): ImageSource { + return this._image; + } + + set image(value: ImageSource) { + this._image = value; + } +} diff --git a/src/FLAD/navigation/Navigation.tsx b/src/FLAD/navigation/Navigation.tsx new file mode 100644 index 0000000..b53d1bc --- /dev/null +++ b/src/FLAD/navigation/Navigation.tsx @@ -0,0 +1,35 @@ +import React, {Component} from 'react'; +import { NavigationContainer } from '@react-navigation/native'; +import Home from '../screens/spot'; +import FavoritePage from '../screens/favoritePage'; +import { createStackNavigator } from '@react-navigation/stack'; +import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; + +export default function StackNavigation() { + const Stack = createBottomTabNavigator(); + return ( + + + + + + + + ) + } + diff --git a/src/FLAD/package.json b/src/FLAD/package.json index fc5c653..385a984 100644 --- a/src/FLAD/package.json +++ b/src/FLAD/package.json @@ -9,8 +9,10 @@ "web": "expo start --web" }, "dependencies": { - "@react-navigation/native": "^6.1.2", + "@react-navigation/bottom-tabs": "^6.5.4", + "@react-navigation/native": "^6.1.3", "@react-navigation/native-stack": "^6.9.8", + "@react-navigation/stack": "^6.3.12", "expo": "~47.0.12", "expo-cli": "^6.2.1", "expo-status-bar": "~1.4.2", diff --git a/src/FLAD/pages/favoritePage.tsx b/src/FLAD/pages/favoritePage.tsx deleted file mode 100644 index 2ab49db..0000000 --- a/src/FLAD/pages/favoritePage.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React, {Component} from 'react'; -import { Animated, StyleSheet, Text, View, FlatList, ScrollView } from 'react-native'; -import Card from '../components/Card'; -import CardMusic from '../components/CardMusic'; - - -export default function favoritePage() { - return ( - - - Favoris - Retrouvez ici vos musiques favorites - - - - - - - - - - - ); -}; - -const styles = StyleSheet.create({ - titleContainer: { - marginLeft: 20, - marginVertical: 50, - }, - title: { - fontSize: 24, - fontWeight: 'bold', - color: 'white', - }, - description: { - marginTop: 10, - fontSize: 18, - color: '#787878', - }, -}); diff --git a/src/FLAD/screens/favoritePage.tsx b/src/FLAD/screens/favoritePage.tsx new file mode 100644 index 0000000..35b2a88 --- /dev/null +++ b/src/FLAD/screens/favoritePage.tsx @@ -0,0 +1,60 @@ +import React, {Component} from 'react'; +import { Animated, StyleSheet, Text, View, FlatList, ScrollView, TouchableHighlight } from 'react-native'; +import Card from '../components/Card'; +import CardMusic from '../components/CardMusic'; +import Music from '../model/Music' + +export default function favoritePage() { + const MUSIC_LIST : Music[] = [ + new Music("La pharmacie", "Jul",require("../assets/images/jul.png")), + new Music("Deux frères", "PNL", require("../assets/images/pnl.png")), + new Music("Stratos", "Kekra", "https://images.genius.com/ddc9cadedd1d4cef0860aaa85af9cd46.705x705x1.png"), + new Music("Autobahn", "Sch", "https://images.genius.com/83b6c98680d38bde1571f6b4093244b5.1000x1000x1.jpg"), + new Music("Freeze Raël", "Freeze Corleone", "https://intrld.com/wp-content/uploads/2020/08/freeze-corleone-la-menace-fanto%CC%82me.png"), + new Music("Blanka", "PNL", require("../assets/images/pnl.png")), + ] + return ( + + + Favoris + Retrouvez ici vos musiques favorites + + + + ( + // navigation.navigate("")}> + + // + )} + keyExtractor={(item: Music) => item.title } + /> + + + + ); +}; + +const styles = StyleSheet.create({ + body: { + backgroundColor: "#141414" + }, + titleContainer: { + marginLeft: 20, + marginVertical: 50, + }, + title: { + fontSize: 24, + fontWeight: 'bold', + color: 'white', + }, + description: { + marginTop: 10, + fontSize: 18, + color: '#787878', + }, + scroll: { + marginBottom: 120, + } +}); diff --git a/src/FLAD/pages/spot.tsx b/src/FLAD/screens/spot.tsx similarity index 100% rename from src/FLAD/pages/spot.tsx rename to src/FLAD/screens/spot.tsx