diff --git a/JokesApp/components/ListAllCategories.tsx b/JokesApp/components/ListAllCategories.tsx index f59534f..c081443 100644 --- a/JokesApp/components/ListAllCategories.tsx +++ b/JokesApp/components/ListAllCategories.tsx @@ -4,14 +4,17 @@ import React from "react"; import {indigo} from "../Theme"; type JokeListItemProps = { - item: Joke; + item: String; } + + + export function ListAllCategories(props: JokeListItemProps) { return ( - {props.item.type()} + {props.item} ); diff --git a/JokesApp/model/JokeStub.ts b/JokesApp/model/JokeStub.ts index e5ce36e..6a7c802 100644 --- a/JokesApp/model/JokeStub.ts +++ b/JokesApp/model/JokeStub.ts @@ -6,6 +6,6 @@ export class JokeStub { public static customJokes = `[{"type":"custom", "setup":"Comment est-ce qu'on appelle un boomerang qui ne revient pas ?", "punchline":"Un chat disparu.", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"custom", "setup":"Que dit un aveugle lorsqu'on lui donne du papier de verre ?", "punchline":"C'est écrit tout petit.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"custom", "setup":"Pourquoi la petite fille tombe-t-elle de la balançoire ?", "punchline":"Parce qu'elle n'a pas de bras.", "image":"http://placekitten.com/200/300", "id":"id5"}, {"type":"custom", "setup":"Qu'est-ce qui est pire qu'un bébé dans une poubelle ?", "punchline":"Un bébé dans deux poubelles.", "image":"http://placekitten.com/200/300", "id":"id6"}, {"type":"custom", "setup":"Grâce à quoi peut-on enlever le chewing-gum dans les cheveux ?", "punchline":"Le cancer.", "image":"http://placekitten.com/200/300", "id":"id7"}, {"type":"custom", "setup":"Qu'est-ce qui est mieux que gagner une médaille d'or aux Jeux Paralympiques ?", "punchline":"Marcher.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"custom", "setup":"Quelle partie du légume ne passe pas dans le mixeur ?", "punchline":"La chaise roulante.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"custom", "setup":"Comment reconnaît-on une lettre envoyée par un lépreux ?", "punchline":"La langue est collée au timbre.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"custom", "setup":"Que faire quand on trouve un épileptique en crise dans une baignoire ?", "punchline":"Ajouter de la lessive et y jeter son linge sale.", "image":"http://placekitten.com/200/300", "id":"id11"}, {"type":"custom", "setup":"Comment sortir un bébé d'un mixeur ?", "punchline":"Avec une paille.", "image":"http://placekitten.com/200/300", "id":"id12"}, {"type":"custom", "setup":"Qu'est-ce qui a deux pattes et qui saigne ?", "punchline":"Un demi-chien.", "image":"http://placekitten.com/200/300", "id":"id13"}]`; // Données JSON pour les SampleJokes - public static sampleJokes = `[{"type":"sample", "setup":"Que dit un escargot quand il croise une limace ?", "punchline":"Oh la belle décapotable", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"sample", "setup":"Qu'est-ce qui est vert et qui porte une cape ?", "punchline":"Un concombre imitant Super Tomate.", "image":"http://placekitten.com/200/300", "id":"id2"}, {"type":"sample", "setup":"Vous connaissez l’histoire du petit-déjeuner ?", "punchline":"Pas de bol !", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"sample", "setup":"Connaissez-vous l’histoire du pingouin qui respirait par les fesses ?", "punchline":"Un beau jour, il s’assoit sur une chaise et meurt.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"sample", "setup":"Est-ce que vous connaissez l’histoire du poil ?", "punchline":"Avant, il était bien. Maintenant, il est pubien.", "image":"http://placekitten.com/200/300", "id":"id5"}, {"type":"sample", "setup":"Comment appelle-t-on un bébé éléphant né prématurément ?", "punchline":"Un éléphant tôt.", "image":"http://placekitten.com/200/300", "id":"id6"}, {"type":"sample", "setup":"Les vaches ferment les yeux pendant la traite de lait. Pourquoi ?", "punchline":"Pour faire du lait concentré.", "image":"http://placekitten.com/200/300", "id":"id7"}, {"type":"sample", "setup":"Quelle est l’histoire du lit superposé ?", "punchline":"C’est une histoire à dormir debout.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"sample", "setup":"Qu’est-ce qui est jaune et qui attend ?", "punchline":"Jonathan.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"sample", "setup":"Connais-tu l’histoire d’un panda qui en a eu marre de la vie ?", "punchline":"Il se panda.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"sample", "setup":"Qu’est-ce qui est vert et qui pousse dans le jardin ?", "punchline":"Un extraterrestre qui fait caca.", "image":"http://placekitten.com/200/300", "id":"id11"}, {"type":"sample", "setup":"Avez-vous déjà entendu l’histoire de l’homme qui a giflé un aveugle ?", "punchline":"Vous ne l’avez pas vu venir celle-là.", "image":"http://placekitten.com/200/300", "id":"id12"}, {"type":"sample", "setup":"Que dit un chien après avoir fait caca dans la maison ?", "punchline":"Le chat fait la même chose, mais vous ne vous fâchez jamais.", "image":"http://placekitten.com/200/300", "id":"id13"}]`; + public static sampleJokes = `[{"type":"DavidJTM", "setup":"Que dit un escargot quand il croise une limace ?", "punchline":"Oh la belle décapotable", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"sample", "setup":"Qu'est-ce qui est vert et qui porte une cape ?", "punchline":"Un concombre imitant Super Tomate.", "image":"http://placekitten.com/200/300", "id":"id2"}, {"type":"sample", "setup":"Vous connaissez l’histoire du petit-déjeuner ?", "punchline":"Pas de bol !", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"sample", "setup":"Connaissez-vous l’histoire du pingouin qui respirait par les fesses ?", "punchline":"Un beau jour, il s’assoit sur une chaise et meurt.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"sample", "setup":"Est-ce que vous connaissez l’histoire du poil ?", "punchline":"Avant, il était bien. Maintenant, il est pubien.", "image":"http://placekitten.com/200/300", "id":"id5"}, {"type":"sample", "setup":"Comment appelle-t-on un bébé éléphant né prématurément ?", "punchline":"Un éléphant tôt.", "image":"http://placekitten.com/200/300", "id":"id6"}, {"type":"sample", "setup":"Les vaches ferment les yeux pendant la traite de lait. Pourquoi ?", "punchline":"Pour faire du lait concentré.", "image":"http://placekitten.com/200/300", "id":"id7"}, {"type":"sample", "setup":"Quelle est l’histoire du lit superposé ?", "punchline":"C’est une histoire à dormir debout.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"sample", "setup":"Qu’est-ce qui est jaune et qui attend ?", "punchline":"Jonathan.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"sample", "setup":"Connais-tu l’histoire d’un panda qui en a eu marre de la vie ?", "punchline":"Il se panda.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"sample", "setup":"Qu’est-ce qui est vert et qui pousse dans le jardin ?", "punchline":"Un extraterrestre qui fait caca.", "image":"http://placekitten.com/200/300", "id":"id11"}, {"type":"sample", "setup":"Avez-vous déjà entendu l’histoire de l’homme qui a giflé un aveugle ?", "punchline":"Vous ne l’avez pas vu venir celle-là.", "image":"http://placekitten.com/200/300", "id":"id12"}, {"type":"sample", "setup":"Que dit un chien après avoir fait caca dans la maison ?", "punchline":"Le chat fait la même chose, mais vous ne vous fâchez jamais.", "image":"http://placekitten.com/200/300", "id":"id13"}]`; } diff --git a/JokesApp/screens/AccueilScreen.tsx b/JokesApp/screens/AccueilScreen.tsx index 193209c..e8f00bb 100644 --- a/JokesApp/screens/AccueilScreen.tsx +++ b/JokesApp/screens/AccueilScreen.tsx @@ -1,21 +1,28 @@ import {FlatList, Image, SafeAreaView, ScrollView, SectionListComponent, StyleSheet, Text, View} from "react-native"; import {indigo, purpleColor} from "../Theme"; -import {JokeListItems} from "../components/ListeJokeComponent"; import {Joke} from "../model/Joke"; -import {JokeFactory} from "../model/JokeFactory"; -import {JokeStub} from "../model/JokeStub"; -import {ListJokeScreen} from "./ListJokeScreen"; +import {DataGen, ListJokeScreen} from "./ListJokeScreen"; import React from "react"; import {HorizontalListJokeComponent} from "../components/HorizontalListJokeComponent"; import {ListAllCategories} from "../components/ListAllCategories"; -const DATACUSTOM = JokeFactory.createCustomJokes(JokeStub.customJokes) -const DATASAMPLE = JokeFactory.createSampleJokes(JokeStub.sampleJokes) +let taille = DataGen.length; +let LastJokes = DataGen.slice(taille - 16, taille); -//@ts-ignore -let DataGen = DATACUSTOM.concat(DATASAMPLE); -let FilterData = DataGen.filter((joke) => joke.type() !== joke.type() ) +function filterCategory(jokes: Joke[]): String[] { + let categories: String[] = []; + jokes.forEach(joke => { + if (!categories.includes(joke.type())) { + categories.push(joke.type()); + } + }); + return categories; +} export function AccueilScreen() { + + // Permet de filtrer les types des blagues pour les afficher dans la liste des categories + const FiltereData = filterCategory(LastJokes); + return ( @@ -24,8 +31,8 @@ export function AccueilScreen() { Chat C'est Drôle Dernieres Blagues - item.summary()} /> @@ -34,9 +41,9 @@ export function AccueilScreen() { item.summary()} + keyExtractor={(item) => item.toString()} /> ); diff --git a/JokesApp/screens/ListJokeScreen.tsx b/JokesApp/screens/ListJokeScreen.tsx index 369e8aa..979382f 100644 --- a/JokesApp/screens/ListJokeScreen.tsx +++ b/JokesApp/screens/ListJokeScreen.tsx @@ -11,7 +11,7 @@ const DATACUSTOM = JokeFactory.createCustomJokes(JokeStub.customJokes) const DATASAMPLE = JokeFactory.createSampleJokes(JokeStub.sampleJokes) //@ts-ignore -let DataGen = DATACUSTOM.concat(DATASAMPLE); +export let DataGen: Joke[] = DATACUSTOM.concat(DATASAMPLE); export function ListJokeScreen() { return (