From 46a85f06e3dd048d866aef1b89c23fe1c3313d17 Mon Sep 17 00:00:00 2001 From: Lucas Delanier Date: Tue, 31 Jan 2023 15:50:37 +0100 Subject: [PATCH] navigation and all pages --- .idea/.gitignore | 5 + .idea/MoovieFinderTS.iml | 12 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + App.tsx | 2 +- assets/images/Favorite.png | Bin 0 -> 5817 bytes assets/images/Generate.png | Bin 0 -> 7346 bytes assets/images/WatchLater.png | Bin 0 -> 6273 bytes assets/images/delimiter.png | Bin 0 -> 11756 bytes navigation/LinkingConfiguration.ts | 13 +- navigation/index.tsx | 71 ++--- package-lock.json | 454 ++++++++++++++++++++++++++++- package.json | 13 +- rating.riv | Bin 0 -> 15630 bytes screens/FavoriteScreen.tsx | 88 ++++++ screens/HomeScreen.tsx | 172 +++++++++++ screens/ModalScreen.tsx | 35 --- screens/TabOneScreen.tsx | 32 -- screens/TabTwoScreen.tsx | 31 -- screens/WatchLaterScreen.tsx | 95 ++++++ types.tsx | 10 +- 21 files changed, 906 insertions(+), 141 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/MoovieFinderTS.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 assets/images/Favorite.png create mode 100644 assets/images/Generate.png create mode 100644 assets/images/WatchLater.png create mode 100644 assets/images/delimiter.png create mode 100644 rating.riv create mode 100644 screens/FavoriteScreen.tsx create mode 100644 screens/HomeScreen.tsx delete mode 100644 screens/ModalScreen.tsx delete mode 100644 screens/TabOneScreen.tsx delete mode 100644 screens/TabTwoScreen.tsx create mode 100644 screens/WatchLaterScreen.tsx diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/MoovieFinderTS.iml b/.idea/MoovieFinderTS.iml new file mode 100644 index 0000000..0c8867d --- /dev/null +++ b/.idea/MoovieFinderTS.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f15b873 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/App.tsx b/App.tsx index 20ed07d..9b54a76 100644 --- a/App.tsx +++ b/App.tsx @@ -1,9 +1,9 @@ import { StatusBar } from 'expo-status-bar'; import { SafeAreaProvider } from 'react-native-safe-area-context'; - import useCachedResources from './hooks/useCachedResources'; import useColorScheme from './hooks/useColorScheme'; import Navigation from './navigation'; +import {View} from "react-native"; export default function App() { const isLoadingComplete = useCachedResources(); diff --git a/assets/images/Favorite.png b/assets/images/Favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..2e363e59522db6cf0458ce6798e6be3ebd27009d GIT binary patch literal 5817 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 Dbd=T~ literal 0 HcmV?d00001 diff --git a/assets/images/Generate.png b/assets/images/Generate.png new file mode 100644 index 0000000000000000000000000000000000000000..88c7a0f311e6e87b2c6dc9d83831c60a3fe0db89 GIT binary patch literal 7346 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 literal 0 HcmV?d00001 diff --git a/assets/images/delimiter.png b/assets/images/delimiter.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc47aa7771fe915423322b8c8a889e3c17ca147 GIT binary patch literal 11756 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 O0000 = { screens: { Root: { screens: { - TabOne: { + WatchLater: { screens: { - TabOneScreen: 'one', + WatchLaterScreen: 'WatchLater', }, }, - TabTwo: { + Home: { screens: { - TabTwoScreen: 'two', + HomeScreen: 'Home', + }, + }, + Favorite: { + screens: { + FavoriteScreen: 'Favorite', }, }, }, diff --git a/navigation/index.tsx b/navigation/index.tsx index 21cea97..4bd5a6d 100644 --- a/navigation/index.tsx +++ b/navigation/index.tsx @@ -4,6 +4,9 @@ * */ import { FontAwesome } from '@expo/vector-icons'; +import { FontAwesomeIcon} from "@fortawesome/react-native-fontawesome"; +import { faClock, faFilm, faHeart} from "@fortawesome/free-solid-svg-icons"; +import Ionicons from '@expo/vector-icons/Ionicons'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { NavigationContainer, DefaultTheme, DarkTheme } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; @@ -12,10 +15,10 @@ import { ColorSchemeName, Pressable } from 'react-native'; import Colors from '../constants/Colors'; import useColorScheme from '../hooks/useColorScheme'; -import ModalScreen from '../screens/ModalScreen'; import NotFoundScreen from '../screens/NotFoundScreen'; -import TabOneScreen from '../screens/TabOneScreen'; -import TabTwoScreen from '../screens/TabTwoScreen'; +import WatchLaterScreen from '../screens/WatchLaterScreen'; +import FavoriteScreen from '../screens/FavoriteScreen'; +import HomeScreen from '../screens/HomeScreen'; import { RootStackParamList, RootTabParamList, RootTabScreenProps } from '../types'; import LinkingConfiguration from './LinkingConfiguration'; @@ -38,11 +41,11 @@ const Stack = createNativeStackNavigator(); function RootNavigator() { return ( - + + - - - + + ); } @@ -58,38 +61,37 @@ function BottomTabNavigator() { return ( ) => ({ - title: 'Tab One', - tabBarIcon: ({ color }) => , - headerRight: () => ( - navigation.navigate('Modal')} - style={({ pressed }) => ({ - opacity: pressed ? 0.5 : 1, - })}> - - - ), + name="WatchLater" + + component={WatchLaterScreen} + options={({ navigation }: RootTabScreenProps<'WatchLater'>) => ({ + tabBarIcon: ({ color, size}) => , + headerShown: false, + })} /> + , + }} + /> , + headerShown: false, + tabBarIcon: ({ color, size }) => , }} /> @@ -100,8 +102,9 @@ function BottomTabNavigator() { * You can explore the built-in icon families and icons on the web at https://icons.expo.fyi/ */ function TabBarIcon(props: { - name: React.ComponentProps['name']; + name: any; color: string; + size: number; }) { - return ; + return ; } diff --git a/package-lock.json b/package-lock.json index 6d30d5b..ba86c83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,20 @@ "version": "1.0.0", "dependencies": { "@expo/vector-icons": "^13.0.0", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/free-brands-svg-icons": "^6.2.1", + "@fortawesome/free-regular-svg-icons": "^6.2.1", + "@fortawesome/free-solid-svg-icons": "^6.2.1", + "@fortawesome/react-native-fontawesome": "^0.3.0", "@react-navigation/bottom-tabs": "^6.0.5", "@react-navigation/native": "^6.0.2", "@react-navigation/native-stack": "^6.1.0", + "@reacticons/ionicons": "^6.0.4", "expo": "~47.0.12", "expo-asset": "~8.7.0", "expo-constants": "~14.0.2", "expo-font": "~11.0.1", + "expo-linear-gradient": "~12.0.1", "expo-linking": "~3.3.0", "expo-splash-screen": "~0.17.5", "expo-status-bar": "~1.4.2", @@ -24,9 +31,13 @@ "react": "18.1.0", "react-dom": "18.1.0", "react-native": "0.70.5", + "react-native-ionicons": "^4.6.5", + "react-native-linear-gradient": "^2.6.2", "react-native-safe-area-context": "4.4.1", "react-native-screens": "~3.18.0", - "react-native-web": "~0.18.9" + "react-native-svg": "^13.7.0", + "react-native-web": "~0.18.9", + "rive-react-native": "^3.0.41" }, "devDependencies": { "@babel/core": "^7.12.9", @@ -3169,6 +3180,77 @@ "node": ">=8" } }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz", + "integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz", + "integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.2.1.tgz", + "integrity": "sha512-L8l4MfdHPmZlJ72PvzdfwOwbwcCAL0vx48tJRnI6u1PJXh+j2f3yDoKyQgO3qjEsgD5Fr2tQV/cPP8F/k6aUig==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.2.1.tgz", + "integrity": "sha512-wiqcNDNom75x+pe88FclpKz7aOSqS2lOivZeicMV5KRwOAeypxEYWAK/0v+7r+LrEY30+qzh8r2XDaEHvoLsMA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.2.1.tgz", + "integrity": "sha512-oKuqrP5jbfEPJWTij4sM+/RvgX+RMFwx3QZCZcK9PrBDgxC35zuc7AOFsyMjMd/PIFPeB2JxyqDr5zs/DZFPPw==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.2.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/react-native-fontawesome": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-native-fontawesome/-/react-native-fontawesome-0.3.0.tgz", + "integrity": "sha512-wSfetdK4+b/pvPbM2v+bZ5hfNlwtk9l3QuJo59sbMrxJalfX7BuF2WsSIWMSxfWwSsbOtY4+TUs6uw/rE59NJA==", + "dependencies": { + "humps": "^2.0.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6", + "react-native": ">= 0.67", + "react-native-svg": ">= 11.x" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -5334,6 +5416,11 @@ "nanoid": "^3.1.23" } }, + "node_modules/@reacticons/ionicons": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@reacticons/ionicons/-/ionicons-6.0.4.tgz", + "integrity": "sha512-FN4/D6a/kS2dEMwVltAGCKiYArDESGW1fgsV2bgz2ZHFAlmBF7o2p7Ckr+clOHzIEg1odWm+gdc+DBtYc80ENQ==" + }, "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", @@ -6315,6 +6402,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/bplist-creator": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", @@ -7262,6 +7354,44 @@ "hyphenate-style-name": "^1.0.3" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -7522,6 +7652,30 @@ "node": ">=8" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -7543,6 +7697,33 @@ "node": ">=8" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7586,6 +7767,17 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-editor": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", @@ -8049,6 +8241,14 @@ "expo": "*" } }, + "node_modules/expo-linear-gradient": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-12.0.1.tgz", + "integrity": "sha512-TMl/wBTVQOliL4S3DS5Aa3UFfVySr0mdJEHLG6kfBdMCLkr+tfLI2rGyJ+scS7xgMsvhTIaurhf1+Z0sL3aLCg==", + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-linking": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-3.3.0.tgz", @@ -9065,6 +9265,11 @@ "node": ">=8.12.0" } }, + "node_modules/humps": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/humps/-/humps-2.0.1.tgz", + "integrity": "sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==" + }, "node_modules/hyphenate-style-name": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", @@ -12296,6 +12501,11 @@ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -13520,6 +13730,17 @@ "node": ">=4" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -14285,6 +14506,16 @@ "node": ">= 6" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -14520,6 +14751,24 @@ "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz", "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==" }, + "node_modules/react-native-ionicons": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/react-native-ionicons/-/react-native-ionicons-4.6.5.tgz", + "integrity": "sha512-s2Ia7M5t609LE9LWygMj3ALVPUlKhK7R9XcMb67fP4EYJv0oLcwg5pc+8ftv9XXaUuTW/WgL3zJlBYxAvtvMJg==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-linear-gradient": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz", + "integrity": "sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-safe-area-context": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz", @@ -14542,6 +14791,19 @@ "react-native": "*" } }, + "node_modules/react-native-svg": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-13.7.0.tgz", + "integrity": "sha512-WR5CIURvee5cAfvMhmdoeOjh1SC8KdLq5u5eFsz4pbYzCtIFClGSkLnNgkMSDMVV5LV0qQa4jeIk75ieIBzaDA==", + "dependencies": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-web": { "version": "0.18.12", "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.18.12.tgz", @@ -15124,6 +15386,15 @@ "rimraf": "bin.js" } }, + "node_modules/rive-react-native": { + "version": "3.0.41", + "resolved": "https://registry.npmjs.org/rive-react-native/-/rive-react-native-3.0.41.tgz", + "integrity": "sha512-N4BQuQwsPK98n8AITrMh/iG/AjCikKm6f1Wt+EMJa6hl987h68mM2z/4vul+CuigkMreiiIH6kUSOAMKMK98KA==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", @@ -19679,6 +19950,52 @@ } } }, + "@fortawesome/fontawesome-common-types": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz", + "integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz", + "integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.2.1" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.2.1.tgz", + "integrity": "sha512-L8l4MfdHPmZlJ72PvzdfwOwbwcCAL0vx48tJRnI6u1PJXh+j2f3yDoKyQgO3qjEsgD5Fr2tQV/cPP8F/k6aUig==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.2.1" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.2.1.tgz", + "integrity": "sha512-wiqcNDNom75x+pe88FclpKz7aOSqS2lOivZeicMV5KRwOAeypxEYWAK/0v+7r+LrEY30+qzh8r2XDaEHvoLsMA==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.2.1" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.2.1.tgz", + "integrity": "sha512-oKuqrP5jbfEPJWTij4sM+/RvgX+RMFwx3QZCZcK9PrBDgxC35zuc7AOFsyMjMd/PIFPeB2JxyqDr5zs/DZFPPw==", + "requires": { + "@fortawesome/fontawesome-common-types": "6.2.1" + } + }, + "@fortawesome/react-native-fontawesome": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@fortawesome/react-native-fontawesome/-/react-native-fontawesome-0.3.0.tgz", + "integrity": "sha512-wSfetdK4+b/pvPbM2v+bZ5hfNlwtk9l3QuJo59sbMrxJalfX7BuF2WsSIWMSxfWwSsbOtY4+TUs6uw/rE59NJA==", + "requires": { + "humps": "^2.0.1", + "prop-types": "^15.7.2" + } + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -21319,6 +21636,11 @@ "nanoid": "^3.1.23" } }, + "@reacticons/ionicons": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@reacticons/ionicons/-/ionicons-6.0.4.tgz", + "integrity": "sha512-FN4/D6a/kS2dEMwVltAGCKiYArDESGW1fgsV2bgz2ZHFAlmBF7o2p7Ckr+clOHzIEg1odWm+gdc+DBtYc80ENQ==" + }, "@segment/loosely-validate-event": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", @@ -22126,6 +22448,11 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "bplist-creator": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", @@ -22858,6 +23185,32 @@ "hyphenate-style-name": "^1.0.3" } }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -23052,6 +23405,21 @@ "path-type": "^4.0.0" } }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -23069,6 +23437,24 @@ } } }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -23103,6 +23489,11 @@ "once": "^1.4.0" } }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + }, "env-editor": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", @@ -23457,6 +23848,12 @@ "integrity": "sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==", "requires": {} }, + "expo-linear-gradient": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-12.0.1.tgz", + "integrity": "sha512-TMl/wBTVQOliL4S3DS5Aa3UFfVySr0mdJEHLG6kfBdMCLkr+tfLI2rGyJ+scS7xgMsvhTIaurhf1+Z0sL3aLCg==", + "requires": {} + }, "expo-linking": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-3.3.0.tgz", @@ -24243,6 +24640,11 @@ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, + "humps": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/humps/-/humps-2.0.1.tgz", + "integrity": "sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==" + }, "hyphenate-style-name": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", @@ -26675,6 +27077,11 @@ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -27684,6 +28091,14 @@ "path-key": "^2.0.0" } }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, "nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -28248,6 +28663,16 @@ "sisteransi": "^1.0.5" } }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -28517,6 +28942,18 @@ "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz", "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==" }, + "react-native-ionicons": { + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/react-native-ionicons/-/react-native-ionicons-4.6.5.tgz", + "integrity": "sha512-s2Ia7M5t609LE9LWygMj3ALVPUlKhK7R9XcMb67fP4EYJv0oLcwg5pc+8ftv9XXaUuTW/WgL3zJlBYxAvtvMJg==", + "requires": {} + }, + "react-native-linear-gradient": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz", + "integrity": "sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ==", + "requires": {} + }, "react-native-safe-area-context": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz", @@ -28532,6 +28969,15 @@ "warn-once": "^0.1.0" } }, + "react-native-svg": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-13.7.0.tgz", + "integrity": "sha512-WR5CIURvee5cAfvMhmdoeOjh1SC8KdLq5u5eFsz4pbYzCtIFClGSkLnNgkMSDMVV5LV0qQa4jeIk75ieIBzaDA==", + "requires": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3" + } + }, "react-native-web": { "version": "0.18.12", "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.18.12.tgz", @@ -28893,6 +29339,12 @@ "glob": "^7.1.3" } }, + "rive-react-native": { + "version": "3.0.41", + "resolved": "https://registry.npmjs.org/rive-react-native/-/rive-react-native-3.0.41.tgz", + "integrity": "sha512-N4BQuQwsPK98n8AITrMh/iG/AjCikKm6f1Wt+EMJa6hl987h68mM2z/4vul+CuigkMreiiIH6kUSOAMKMK98KA==", + "requires": {} + }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", diff --git a/package.json b/package.json index e9be706..261a135 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,20 @@ }, "dependencies": { "@expo/vector-icons": "^13.0.0", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/free-brands-svg-icons": "^6.2.1", + "@fortawesome/free-regular-svg-icons": "^6.2.1", + "@fortawesome/free-solid-svg-icons": "^6.2.1", + "@fortawesome/react-native-fontawesome": "^0.3.0", "@react-navigation/bottom-tabs": "^6.0.5", "@react-navigation/native": "^6.0.2", "@react-navigation/native-stack": "^6.1.0", + "@reacticons/ionicons": "^6.0.4", "expo": "~47.0.12", "expo-asset": "~8.7.0", "expo-constants": "~14.0.2", "expo-font": "~11.0.1", + "expo-linear-gradient": "~12.0.1", "expo-linking": "~3.3.0", "expo-splash-screen": "~0.17.5", "expo-status-bar": "~1.4.2", @@ -29,9 +36,13 @@ "react": "18.1.0", "react-dom": "18.1.0", "react-native": "0.70.5", + "react-native-ionicons": "^4.6.5", + "react-native-linear-gradient": "^2.6.2", "react-native-safe-area-context": "4.4.1", "react-native-screens": "~3.18.0", - "react-native-web": "~0.18.9" + "react-native-svg": "^13.7.0", + "react-native-web": "~0.18.9", + "rive-react-native": "^3.0.41" }, "devDependencies": { "@babel/core": "^7.12.9", diff --git a/rating.riv b/rating.riv new file mode 100644 index 0000000000000000000000000000000000000000..56a6cd24f869602a701f126172c67fdc367e359f GIT binary patch literal 15630 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 gdB^okS) { + return ( + + + + Favorite + + + + + + } + /> + + ); +} +const styles = StyleSheet.create({ + container: { + flex: 1, + paddingTop: 22, + backgroundColor: "#232323" + }, + item: { + padding: 10, + fontSize: 18, + height: 44, + color: "white" + }, + filmCard: { + width: 70, + height: 100, + borderRadius: 8, + + + }, +}); + +type ListWidgetProps = { + name : String + +} + +export function ListWidget(props: ListWidgetProps) { + return ( + + + + {props.name} + {props.name} + + + + + + + + ); + + +} + diff --git a/screens/HomeScreen.tsx b/screens/HomeScreen.tsx new file mode 100644 index 0000000..669799f --- /dev/null +++ b/screens/HomeScreen.tsx @@ -0,0 +1,172 @@ +import * as React from 'react'; +import {Button,TouchableOpacity,ScrollView,View, Text, StyleSheet, Image, ImageBackground, SafeAreaView} from 'react-native'; +import {RootStackScreenProps} from "../types.js"; +import Rive from 'rive-react-native'; +import {useRef} from "react"; +import {RiveViewManager} from "rive-react-native/lib/typescript/Rive.js"; +const styles = StyleSheet.create({ + background: { + backgroundColor: 'black', + height: '100%', + }, + + container:{ + flex: 1, + }, + filmCard: { + width: 310, + height: 450, + justifyContent:'center', + marginLeft:'auto', + marginRight:'auto', + borderRadius: 15, + + + }, + image: { + position: 'absolute', + shadowColor: "#000", + shadowOffset: { + width: 0, + height: 6, + }, + shadowOpacity: 0.39, + shadowRadius: 8.30, + flex: 1, + paddingTop: 230, + alignSelf: 'center', + elevation: 13, + }, + backgroundImage: { + flex: 1, + resizeMode: 'cover', // or 'stretch' + }, + child: { + flex: 1, + backgroundColor: 'rgba(0,0,0,0.5)', + }, + +}); + +export default function App({ navigation }: RootStackScreenProps<'Home'>) { + const riveRef = useRef(); + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SPIDER-MAN No Way Home + + Jean-Marc généreux + + + + + + + + + + + + + + + + + ); +} + +type BadgeGenreProps = { + name : String + isSelected: Boolean + +} + +export function BadgeGenre(props: BadgeGenreProps) { + if(props.isSelected==false){ + return ( + + {props.name} + + + ); + } + else{ + return ( + + {props.name} + + + ); + } + + +} + +type BadgeFilmProps = { + name : String + +} +export function BadgeFilm(props: BadgeFilmProps) { + + return ( + + {props.name} + + + ); + + +} diff --git a/screens/ModalScreen.tsx b/screens/ModalScreen.tsx deleted file mode 100644 index 05889c3..0000000 --- a/screens/ModalScreen.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { StatusBar } from 'expo-status-bar'; -import { Platform, StyleSheet } from 'react-native'; - -import EditScreenInfo from '../components/EditScreenInfo'; -import { Text, View } from '../components/Themed'; - -export default function ModalScreen() { - return ( - - Modal - - - - {/* Use a light status bar on iOS to account for the black space above the modal */} - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - }, - title: { - fontSize: 20, - fontWeight: 'bold', - }, - separator: { - marginVertical: 30, - height: 1, - width: '80%', - }, -}); diff --git a/screens/TabOneScreen.tsx b/screens/TabOneScreen.tsx deleted file mode 100644 index cae37f5..0000000 --- a/screens/TabOneScreen.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { StyleSheet } from 'react-native'; - -import EditScreenInfo from '../components/EditScreenInfo'; -import { Text, View } from '../components/Themed'; -import { RootTabScreenProps } from '../types'; - -export default function TabOneScreen({ navigation }: RootTabScreenProps<'TabOne'>) { - return ( - - Tab One - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - }, - title: { - fontSize: 20, - fontWeight: 'bold', - }, - separator: { - marginVertical: 30, - height: 1, - width: '80%', - }, -}); diff --git a/screens/TabTwoScreen.tsx b/screens/TabTwoScreen.tsx deleted file mode 100644 index 68f726b..0000000 --- a/screens/TabTwoScreen.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { StyleSheet } from 'react-native'; - -import EditScreenInfo from '../components/EditScreenInfo'; -import { Text, View } from '../components/Themed'; - -export default function TabTwoScreen() { - return ( - - Tab Two - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - }, - title: { - fontSize: 20, - fontWeight: 'bold', - }, - separator: { - marginVertical: 30, - height: 1, - width: '80%', - }, -}); diff --git a/screens/WatchLaterScreen.tsx b/screens/WatchLaterScreen.tsx new file mode 100644 index 0000000..adc9708 --- /dev/null +++ b/screens/WatchLaterScreen.tsx @@ -0,0 +1,95 @@ +import {FlatList, StyleSheet, SafeAreaView, Text, View, Image, TextInput} from 'react-native'; +import * as React from "react"; +import {BadgeFilm} from "./HomeScreen"; +import { FontAwesomeIcon} from "@fortawesome/react-native-fontawesome"; +import { faClock} from "@fortawesome/free-solid-svg-icons"; +import LinearGradient from 'react-native-linear-gradient'; + +export default function WatchLaterScreen({ navigation }: RootTabScreenProps<'WatchLater'>) { + return ( + + + + + Watch Later + + + + + + } + /> + + ); +} +const styles = StyleSheet.create({ + container: { + flex: 1, + paddingTop: 22, + backgroundColor: "#232323" + }, + linearGradient: { + flex: 1, + paddingLeft: 15, + paddingRight: 15, + borderRadius: 5 + }, + item: { + padding: 10, + fontSize: 18, + height: 44, + color: "white" + }, + filmCard: { + width: 70, + height: 100, + borderRadius: 8, + + + }, +}); + +type ListWidgetProps = { + name : String + +} + +export function ListWidget(props: ListWidgetProps) { +return ( + + + + {props.name} + {props.name} + + + + + + + + ); + + +} + diff --git a/types.tsx b/types.tsx index c43fc86..79b0ddc 100644 --- a/types.tsx +++ b/types.tsx @@ -17,6 +17,11 @@ export type RootStackParamList = { Root: NavigatorScreenParams | undefined; Modal: undefined; NotFound: undefined; + Home: undefined; + WatchLater: undefined; + + Favorite: undefined; + }; export type RootStackScreenProps = NativeStackScreenProps< @@ -25,8 +30,9 @@ export type RootStackScreenProps = Nati >; export type RootTabParamList = { - TabOne: undefined; - TabTwo: undefined; + WatchLater: undefined; + Home: undefined; + Favorite: undefined; }; export type RootTabScreenProps = CompositeScreenProps<