diff --git a/components/HeaderMovieComponent.tsx b/components/HeaderMovieComponent.tsx index f7cca48..f154c4a 100644 --- a/components/HeaderMovieComponent.tsx +++ b/components/HeaderMovieComponent.tsx @@ -2,6 +2,7 @@ import {StyleSheet, Text, View} from "react-native"; import * as React from "react"; import Stars from "./StarsComponent"; import Movie from "../model/Movie"; +import {formatTime} from "../model/formatTime"; type headerMovieProps = { movie: Movie @@ -9,12 +10,7 @@ type headerMovieProps = { } export function HeaderMovie(props: headerMovieProps) { - - function formatTime(time: number) { - const hours = Math.floor(time / 60); - const minutes = time % 60; - return `${hours}h ${minutes < 10 ? `0${minutes}` : minutes}m`; - } + const styles = StyleSheet.create({ circle: { diff --git a/model/formatTime.tsx b/model/formatTime.tsx new file mode 100644 index 0000000..bd9784c --- /dev/null +++ b/model/formatTime.tsx @@ -0,0 +1,5 @@ +export function formatTime(time: number) { + const hours = Math.floor(time / 60); + const minutes = time % 60; + return `${hours}h ${minutes < 10 ? `0${minutes}` : minutes}m`; +} \ No newline at end of file diff --git a/screens/InfoScreen.tsx b/screens/InfoScreen.tsx index b89fdc3..ff45d20 100644 --- a/screens/InfoScreen.tsx +++ b/screens/InfoScreen.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import {TouchableOpacity, ScrollView, View, Text, StyleSheet, Image, SafeAreaView, FlatList} from 'react-native'; +import {TouchableOpacity, ScrollView, View, Text, StyleSheet, Image, SafeAreaView, FlatList, Animated} from 'react-native'; import {RootStackScreenProps} from "../types"; import {useSafeAreaInsets} from "react-native-safe-area-context"; import Movie from "../model/Movie"; @@ -12,6 +12,7 @@ import MinimalMovie from "../model/MinimalMovie"; import Review from "../model/review"; import Stars from "../components/StarsComponent"; import minimalMovie from "../model/MinimalMovie"; +import {formatTime} from "../model/formatTime"; export default function InfoScreen({navigation, route}: RootStackScreenProps<'Info'>) { // @ts-ignore @@ -33,20 +34,14 @@ export default function InfoScreen({navigation, route}: RootStackScreenProps<'In const [scaleBackground, setScaleBackground] = useState(1); - function formatTime(time: number) { - const hours = Math.floor(time / 60); - const minutes = time % 60; - return `${hours}h ${minutes < 10 ? `0${minutes}` : minutes}m`; - } const handleScroll = (event: any) => { const {y} = event.nativeEvent.contentOffset; - let padTop = y / -5; + let padTop = y / -20; if (padTop <= 0) - - setPaddingTopBackground(y / -5); - setOpacityBackground(0.5 - y / 500); - let scale = 1 - y / -1000 + setPaddingTopBackground(padTop); + setOpacityBackground(0.5 - y / 600); + let scale = 1 - y / -2000 if (scale >= 1) setScaleBackground(scale); }; @@ -421,7 +416,7 @@ export default function InfoScreen({navigation, route}: RootStackScreenProps<'In navigation.goBack()} style={{zIndex: 100}}> - {item.original_title}