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 0000000..2e363e5
Binary files /dev/null and b/assets/images/Favorite.png differ
diff --git a/assets/images/Generate.png b/assets/images/Generate.png
new file mode 100644
index 0000000..88c7a0f
Binary files /dev/null and b/assets/images/Generate.png differ
diff --git a/assets/images/WatchLater.png b/assets/images/WatchLater.png
new file mode 100644
index 0000000..a09fdae
Binary files /dev/null and b/assets/images/WatchLater.png differ
diff --git a/assets/images/delimiter.png b/assets/images/delimiter.png
new file mode 100644
index 0000000..4cc47aa
Binary files /dev/null and b/assets/images/delimiter.png differ
diff --git a/navigation/LinkingConfiguration.ts b/navigation/LinkingConfiguration.ts
index a6e616d..5965028 100644
--- a/navigation/LinkingConfiguration.ts
+++ b/navigation/LinkingConfiguration.ts
@@ -15,14 +15,19 @@ const linking: LinkingOptions = {
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 0000000..56a6cd2
Binary files /dev/null and b/rating.riv differ
diff --git a/screens/FavoriteScreen.tsx b/screens/FavoriteScreen.tsx
new file mode 100644
index 0000000..c60ce8f
--- /dev/null
+++ b/screens/FavoriteScreen.tsx
@@ -0,0 +1,88 @@
+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 { faHeart} from "@fortawesome/free-solid-svg-icons";
+
+
+export default function FavoriteScreen({ navigation }: RootTabScreenProps<'Favorite'>) {
+ 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<