diff --git a/components/FilterPane.tsx b/components/FilterPane.tsx index 2c71bc60a14cb01328a68a5555032edec3cff47d..fc2a681d631570cc16b70d67f6ea4d47c46b2b68 100644 --- a/components/FilterPane.tsx +++ b/components/FilterPane.tsx @@ -59,7 +59,7 @@ const FilterPane: React.FC = ({ const styles = StyleSheet.create({ container: { - marginTop: 96, + marginTop: 8, marginHorizontal: 16, width: '95%', display: 'flex', diff --git a/components/LoginComponent.tsx b/components/LoginComponent.tsx index 11e9f8e3522f10fdea2ec511fe0cd0669a082878..417e527a90ef2d9b85a09c937116b7e27df29f7e 100644 --- a/components/LoginComponent.tsx +++ b/components/LoginComponent.tsx @@ -5,6 +5,7 @@ import { signIn, signUp } from '../store/ducks/auth/actions'; import { ApplicationState } from '../store/interface'; import Logo from '../assets/images/cinema.png'; import { + Alert, View, Text, Image, @@ -12,8 +13,10 @@ import { useWindowDimensions, Button, Pressable, + ActivityIndicator, } from 'react-native'; import CustomInput from './CustomInput'; +import AwesomeAlert from 'react-native-awesome-alerts'; export default function App() { const { height } = useWindowDimensions(); @@ -43,6 +46,7 @@ export default function App() { const [isLogin, setIsLogin] = useState(true); const dispatch = useDispatch(); const { loading, error } = useSelector(({ auth }: ApplicationState) => auth); + const [alertMessage, setAlertmessage] = useState(''); // Form completed const onFinish = (values: FormValues) => { @@ -62,17 +66,27 @@ export default function App() { // TODO If the redux state contains an error, display an error alert useEffect(() => { if (error) { - console.log('Show error'); + setAlertmessage(error); + } else { + setAlertmessage(''); } }, [error]); const styles = StyleSheet.create({ + alert: { + width: 400, + }, + alertTitle: { + color: 'red', + }, root: { - alignItems: 'center', - padding: 20, + flex: 1, + justifyContent: 'center', + width: '70%', + height: '100%', }, logo: { - width: '70%', + minWidth: 200, maxWidth: 300, maxHeight: 200, }, @@ -92,7 +106,7 @@ export default function App() { }); return ( - + + 0} + title={`${isLogin ? 'Login' : 'Registration'} failed`} + message={`Server responded with: ${alertMessage}`} + closeOnTouchOutside={true} + showConfirmButton={true} + confirmText="Ok" + onConfirmPressed={() => { + setAlertmessage(''); + }} + /> + {loading && } ); } diff --git a/components/MovieDetailScreen.tsx b/components/MovieDetailScreen.tsx index c5905f4faf920a5832017e7901e09bc8f1b76af4..1d7d7294efc18a2706a59e2e705be46f6fd8391e 100644 --- a/components/MovieDetailScreen.tsx +++ b/components/MovieDetailScreen.tsx @@ -1,22 +1,24 @@ -import { StatusBar } from 'expo-status-bar'; import * as React from 'react'; -import { Platform, StyleSheet, Image, useWindowDimensions, Button, ScrollView } from 'react-native'; +import { + Button, + Image, + ScrollView, + StyleSheet, + useWindowDimensions, +} from 'react-native'; +import Lord from '../assets/images/lord.jpg'; import { MovieDetail } from '../models/movieDetail.model'; - -import ProfileInfo from './ProfileInfo'; -import { Text, View } from './Themed'; -import Lord from "../assets/images/lord.jpg"; -import { movies } from '../store/ducks/movies'; import KeyStatisticsItem from './KeyStatisticsItem'; -import Seperator from './Seperator'; import Pill from './Pill'; -import WrapperStatistic from 'antd/lib/statistic/Statistic'; +import Seperator from './Seperator'; +import { Text, View } from './Themed'; + interface MovieDetailProps { movieDetail: MovieDetail; } -export default function MovieDetailScreen({movieDetail}: MovieDetailProps) { - const {height} = useWindowDimensions(); +export default function MovieDetailScreen({ movieDetail }: MovieDetailProps) { + const { height } = useWindowDimensions(); const styles = StyleSheet.create({ root: { @@ -28,10 +30,10 @@ export default function MovieDetailScreen({movieDetail}: MovieDetailProps) { height: 350, }, container: { - width: "100%", + width: '100%', padding: 15, marginVertical: 5, - alignItems: "center", + alignItems: 'center', borderRadius: 5, }, subText: { @@ -45,98 +47,101 @@ export default function MovieDetailScreen({movieDetail}: MovieDetailProps) { flex: 1, flexDirection: 'row', flexWrap: 'wrap', - alignItems: 'flex-start' + alignItems: 'flex-start', }, genres: { - flex: 1, - flexWrap: "wrap", - flexDirection: "row", + flex: 1, + flexWrap: 'wrap', + flexDirection: 'row', marginTop: 15, - paddingBottom: "1rem", - - } - }) - - + paddingBottom: '1rem', + }, + }); return ( - - - - - Stars -{'>'} To be implemented - - -