Tony Fages 1 year ago
parent d6c86e76ce
commit 0c3a3537b6

@ -1,13 +1,15 @@
import {SafeAreaView, StatusBar, StyleSheet} from 'react-native';
import React from "react";
import {ListJokeScreen} from "./screens/ListJokeScreen";
import {Navigation} from "./navigation/Navigation";
import {darksalmonColor, indigo, purpleColor} from "./Theme";
export default function App() {
return (
<SafeAreaView style={styles.container}>
<StatusBar barStyle="light-content" />
<ListJokeScreen/>
<Navigation/>
</SafeAreaView>
);
}
@ -19,7 +21,7 @@ const styles = StyleSheet.create({
title: {
fontSize: 24,
color: 'darksalmon',
color: darksalmonColor,
textAlign: 'center',
marginVertical: 20,
},
@ -30,7 +32,7 @@ const styles = StyleSheet.create({
},
container: {
flex: 1,
backgroundColor: 'rgba(14, 14, 44, 1)',
backgroundColor: indigo,
},
});

@ -1 +1,5 @@
export const indigo = "rgba(74, 74, 104, 1)"
export const indigo = "rgba(14, 14, 44, 1)";
export const purpleColor = "rgba(74, 74, 104, 1)";
export const darksalmonColor = "rgba(233, 150, 122, 1)";
export const greyColor = "rgba(140, 140, 161, 1)";
export const whiteColor = "rgba(239, 239, 253, 1)";

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -3,9 +3,9 @@ import {SampleJoke} from "./SampleJoke";
// Stub permettant de stocker les différentes blagues de différents types
export class JokeStub {
// Données JSON pour les CustomJokes
public static customJokes = '[{"type":"custom", "setup":"Quel jour les poules ont-elles l anus dilaté au maximum ?", "punchline":"Le jour où elles passent du coq à l âne.", "image":"http://placekitten.com/200/300", "id":"id1"}, {"type":"custom", "setup":"Savez-vous comment on appelle le sexe de Michael Jackson ???", "punchline":"Vérité ! Car la vérité sort toujours de la bouche des enfants .", "image":"http://placekitten.com/200/300", "id":"id2"}]';
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 n est pas un steak ?", "punchline":"Une pastèque.", "image":"http://placekitten.com/200/300", "id":"id2"}]';
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 lhistoire du petit-déjeuner ?", "punchline":"Pas de bol !", "image":"http://placekitten.com/200/300", "id":"id3"}, {"type":"sample", "setup":"Connaissez-vous lhistoire du pingouin qui respirait par les fesses ?", "punchline":"Un beau jour, il sassoit sur une chaise et meurt.", "image":"http://placekitten.com/200/300", "id":"id4"}, {"type":"sample", "setup":"Est-ce que vous connaissez lhistoire 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 lhistoire du lit superposé ?", "punchline":"Cest une histoire à dormir debout.", "image":"http://placekitten.com/200/300", "id":"id8"}, {"type":"sample", "setup":"Quest-ce qui est jaune et qui attend ?", "punchline":"Jonathan.", "image":"http://placekitten.com/200/300", "id":"id9"}, {"type":"sample", "setup":"Connais-tu lhistoire dun panda qui en a eu marre de la vie ?", "punchline":"Il se panda.", "image":"http://placekitten.com/200/300", "id":"id10"}, {"type":"sample", "setup":"Quest-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 lhistoire de lhomme qui a giflé un aveugle ?", "punchline":"Vous ne lavez 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"}]`;
}

@ -0,0 +1,105 @@
import React from "react";
import {NavigationContainer} from "@react-navigation/native";
import {createBottomTabNavigator} from "@react-navigation/bottom-tabs";
import {ListJokeScreen} from "../screens/ListJokeScreen";
import {Image, StyleSheet, View} from "react-native";
import {darksalmonColor, greyColor, indigo, purpleColor} from "../Theme";
const homeIcon = require("../assets/home_icon.png");
const listIcon = require("../assets/list_icon.png");
const addIcon = require("../assets/add_icon.png");
const favIcon = require("../assets/favorite_icon.png");
const setIcon = require("../assets/settings_icon.png");
export function Navigation(){
const BottomTabNavigator = createBottomTabNavigator();
return (
<NavigationContainer>
<BottomTabNavigator.Navigator initialRouteName="Home" screenOptions={{
headerTitleStyle: {
fontSize: 24,
fontWeight: 'bold',
color: darksalmonColor,
},
headerStyle: {
backgroundColor: indigo,
},
tabBarShowLabel: false,
tabBarStyle: styles.top,
}} >
<BottomTabNavigator.Screen name="Accueil" component={ListJokeScreen}
options={{
tabBarIcon: ({focused}) => (
<Image
source={homeIcon}
style={{ tintColor: focused ? darksalmonColor : purpleColor }}
/>
)
}}/>
<BottomTabNavigator.Screen name="Catalogue" component={ListJokeScreen}
options={{
tabBarIcon: ({focused}) => (
<Image source={listIcon}
style={{ tintColor: focused ? darksalmonColor : purpleColor }}
/>
)
}}/>
<BottomTabNavigator.Screen name="Ajouter" component={ListJokeScreen}
options={{
tabBarShowLabel: false,
tabBarIcon: ({focused}) => (
<View style={styles.addJoke}>
<Image source={addIcon}
style={{ tintColor: focused ? darksalmonColor : purpleColor }}
/>
</View>
)
}}/>
<BottomTabNavigator.Screen name="Favoris" component={ListJokeScreen}
options={{
tabBarIcon: ({focused}) => (
<Image source={favIcon}
style={{ tintColor: focused ? darksalmonColor : purpleColor }}
/>
)
}}/>
<BottomTabNavigator.Screen name="Paramètres" component={ListJokeScreen}
options={{
tabBarIcon: ({focused}) => (
<Image source={setIcon}
style={{ tintColor: focused ? darksalmonColor : purpleColor }}
/>
)
}}/>
</BottomTabNavigator.Navigator>
</NavigationContainer>
)
}
const styles = StyleSheet.create({
title: {
fontSize: 24,
color: 'darksalmon',
textAlign: 'center',
fontWeight: 'bold',
marginVertical: 20,
},
top: {
backgroundColor : "rgba(14, 14, 44, 1)"
},
addJoke: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: greyColor,
width: '70%',
height: '100%',
borderRadius: 4,
marginTop: 4,
},
});

@ -9,11 +9,15 @@
"version": "1.0.0",
"dependencies": {
"@expo/ngrok": "^2.5.0",
"@react-navigation/bottom-tabs": "^6.5.11",
"@react-navigation/native": "^6.1.9",
"@react-navigation/stack": "^6.3.20",
"@types/react": "~18.2.45",
"expo": "~50.0.3",
"expo-status-bar": "~1.11.1",
"react": "18.2.0",
"react-native": "0.73.2",
"react-native-gesture-handler": "^2.15.0",
"typescript": "^5.3.0"
},
"devDependencies": {
@ -2010,6 +2014,17 @@
"node": ">=6.9.0"
}
},
"node_modules/@egjs/hammerjs": {
"version": "2.0.17",
"resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz",
"integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==",
"dependencies": {
"@types/hammerjs": "^2.0.36"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@expo/bunyan": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz",
@ -6117,6 +6132,118 @@
"react-native": "*"
}
},
"node_modules/@react-navigation/bottom-tabs": {
"version": "6.5.11",
"resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.11.tgz",
"integrity": "sha512-CBN/NOdxnMvmjw+AJQI1kltOYaClTZmGec5pQ3ZNTPX86ytbIOylDIITKMfTgHZcIEFQDymx1SHeS++PIL3Szw==",
"dependencies": {
"@react-navigation/elements": "^1.3.21",
"color": "^4.2.3",
"warn-once": "^0.1.0"
},
"peerDependencies": {
"@react-navigation/native": "^6.0.0",
"react": "*",
"react-native": "*",
"react-native-safe-area-context": ">= 3.0.0",
"react-native-screens": ">= 3.0.0"
}
},
"node_modules/@react-navigation/core": {
"version": "6.4.10",
"resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.10.tgz",
"integrity": "sha512-oYhqxETRHNHKsipm/BtGL0LI43Hs2VSFoWMbBdHK9OqgQPjTVUitslgLcPpo4zApCcmBWoOLX2qPxhsBda644A==",
"dependencies": {
"@react-navigation/routers": "^6.1.9",
"escape-string-regexp": "^4.0.0",
"nanoid": "^3.1.23",
"query-string": "^7.1.3",
"react-is": "^16.13.0",
"use-latest-callback": "^0.1.7"
},
"peerDependencies": {
"react": "*"
}
},
"node_modules/@react-navigation/core/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@react-navigation/core/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/@react-navigation/elements": {
"version": "1.3.21",
"resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.21.tgz",
"integrity": "sha512-eyS2C6McNR8ihUoYfc166O1D8VYVh9KIl0UQPI8/ZJVsStlfSTgeEEh+WXge6+7SFPnZ4ewzEJdSAHH+jzcEfg==",
"peerDependencies": {
"@react-navigation/native": "^6.0.0",
"react": "*",
"react-native": "*",
"react-native-safe-area-context": ">= 3.0.0"
}
},
"node_modules/@react-navigation/native": {
"version": "6.1.9",
"resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.9.tgz",
"integrity": "sha512-AMuJDpwXE7UlfyhIXaUCCynXmv69Kb8NzKgKJO7v0k0L+u6xUTbt6xvshmJ79vsvaFyaEH9Jg5FMzek5/S5qNw==",
"dependencies": {
"@react-navigation/core": "^6.4.10",
"escape-string-regexp": "^4.0.0",
"fast-deep-equal": "^3.1.3",
"nanoid": "^3.1.23"
},
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/@react-navigation/native/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@react-navigation/routers": {
"version": "6.1.9",
"resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.9.tgz",
"integrity": "sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA==",
"dependencies": {
"nanoid": "^3.1.23"
}
},
"node_modules/@react-navigation/stack": {
"version": "6.3.20",
"resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.3.20.tgz",
"integrity": "sha512-vE6mgZzOgoa5Uy7ayT97Cj+ZIK7DK+JBYVuKUViILlWZy6IWK7HFDuqoChSbZ1ajTIfAxj/acVGg1jkbAKsToA==",
"dependencies": {
"@react-navigation/elements": "^1.3.21",
"color": "^4.2.3",
"warn-once": "^0.1.0"
},
"peerDependencies": {
"@react-navigation/native": "^6.0.0",
"react": "*",
"react-native": "*",
"react-native-gesture-handler": ">= 1.0.0",
"react-native-safe-area-context": ">= 3.0.0",
"react-native-screens": ">= 3.0.0"
}
},
"node_modules/@segment/loosely-validate-event": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
@ -6201,6 +6328,11 @@
"@types/responselike": "^1.0.0"
}
},
"node_modules/@types/hammerjs": {
"version": "2.0.45",
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz",
"integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ=="
},
"node_modules/@types/http-cache-semantics": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
@ -7232,6 +7364,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/color": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"dependencies": {
"color-convert": "^2.0.1",
"color-string": "^1.9.0"
},
"engines": {
"node": ">=12.5.0"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@ -7245,6 +7389,31 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"node_modules/color/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
@ -7482,6 +7651,14 @@
"node": ">=0.10.0"
}
},
"node_modules/decode-uri-component": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
@ -8053,6 +8230,11 @@
"resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.11.1.tgz",
"integrity": "sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg=="
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@ -8148,6 +8330,14 @@
"node": ">=8"
}
},
"node_modules/filter-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
"integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@ -8506,6 +8696,19 @@
"node": ">=8"
}
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dependencies": {
"react-is": "^16.7.0"
}
},
"node_modules/hoist-non-react-statics/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/hosted-git-info": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz",
@ -11610,6 +11813,23 @@
"qrcode-terminal": "bin/qrcode-terminal.js"
}
},
"node_modules/query-string": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
"integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
"dependencies": {
"decode-uri-component": "^0.2.2",
"filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/queue": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
@ -11711,6 +11931,18 @@
}
}
},
"node_modules/react-freeze": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
"integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
"peer": true,
"engines": {
"node": ">=10"
},
"peerDependencies": {
"react": ">=17.0.0"
}
},
"node_modules/react-is": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
@ -11769,6 +12001,46 @@
"react": "18.2.0"
}
},
"node_modules/react-native-gesture-handler": {
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz",
"integrity": "sha512-cmMGW8k86o/xgVTBZZOPohvR5re4Vh65PUxH4HbBBJAYTog4aN4wTVTUlnoky01HuSN8/X4h3tI/K3XLPoDnsg==",
"dependencies": {
"@egjs/hammerjs": "^2.0.17",
"hoist-non-react-statics": "^3.3.0",
"invariant": "^2.2.4",
"lodash": "^4.17.21",
"prop-types": "^15.7.2"
},
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/react-native-safe-area-context": {
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.9.0.tgz",
"integrity": "sha512-/OJD9Pb8IURyvn+1tWTszWPJqsbZ4hyHBU9P0xhOmk7h5owSuqL0zkfagU0pg7Vh0G2NKQkaPpUKUMMCUMDh/w==",
"peer": true,
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/react-native-screens": {
"version": "3.29.0",
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.29.0.tgz",
"integrity": "sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg==",
"peer": true,
"dependencies": {
"react-freeze": "^1.0.0",
"warn-once": "^0.1.0"
},
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/react-native/node_modules/promise": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
@ -12270,6 +12542,19 @@
"node": ">= 5.10.0"
}
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/simple-swizzle/node_modules/is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@ -12348,6 +12633,14 @@
"node": "*"
}
},
"node_modules/split-on-first": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
"integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
"engines": {
"node": ">=6"
}
},
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@ -12423,6 +12716,14 @@
"node": ">= 0.10.0"
}
},
"node_modules/strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
"engines": {
"node": ">=4"
}
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@ -13052,6 +13353,14 @@
"resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
"integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA=="
},
"node_modules/use-latest-callback": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz",
"integrity": "sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==",
"peerDependencies": {
"react": ">=16.8"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@ -13107,6 +13416,11 @@
"makeerror": "1.0.12"
}
},
"node_modules/warn-once": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
"integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
},
"node_modules/wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",

@ -10,11 +10,15 @@
},
"dependencies": {
"@expo/ngrok": "^2.5.0",
"@react-navigation/bottom-tabs": "^6.5.11",
"@react-navigation/native": "^6.1.9",
"@react-navigation/stack": "^6.3.20",
"@types/react": "~18.2.45",
"expo": "~50.0.3",
"expo-status-bar": "~1.11.1",
"react": "18.2.0",
"react-native": "0.73.2",
"react-native-gesture-handler": "^2.15.0",
"typescript": "^5.3.0"
},
"devDependencies": {

@ -4,7 +4,7 @@ import {JokeListItems} from "../components/ListeJokeComponent";
import {Joke} from "../model/Joke";
import {JokeFactory} from "../model/JokeFactory";
import {JokeStub} from "../model/JokeStub";
import {indigo} from "../Theme";
import {indigo, purpleColor} from "../Theme";
const DATACUSTOM = JokeFactory.createCustomJokes(JokeStub.customJokes)
@ -16,9 +16,6 @@ let DataGen = DATACUSTOM.concat(DATASAMPLE);
export function ListJokeScreen() {
return (
<SafeAreaView style={styles.container}>
<View style={styles.top}>
<Text style={styles.title}>Liste des Blagues</Text>
</View>
<FlatList
data={DataGen}
renderItem={JokeListItems}
@ -45,11 +42,11 @@ const styles = StyleSheet.create({
},
container: {
flex: 1,
backgroundColor: indigo,
backgroundColor: purpleColor ,
},
top: {
backgroundColor : "rgba(14, 14, 44, 1)"
backgroundColor : indigo,
},

Loading…
Cancel
Save