import {FlatList, StyleSheet, SafeAreaView, Text, View, Image, TextInput, TouchableHighlight} from 'react-native'; import * as React from "react"; import {BadgeFilm, Stars} from "./HomeScreen"; import {FontAwesomeIcon} from "@fortawesome/react-native-fontawesome"; import {faHeart} from "@fortawesome/free-solid-svg-icons"; import LinearGradient from 'react-native-linear-gradient'; import {RootTabScreenProps} from "../types"; import {useSafeAreaInsets} from "react-native-safe-area-context"; import {useDispatch, useSelector} from 'react-redux'; import {useEffect, useState} from 'react'; import {getTrendingID, getFavourite, getFavouriteMovies} from "../redux/actions/actionGetTrendingID"; import Movie from "../model/Movie"; import Swipeable from "react-native-gesture-handler/Swipeable"; export default function FavoriteScreen({ navigation }: RootTabScreenProps<'Favorite'>) { const [search, setSearch] = useState(''); const [filteredDataSource, setFilteredDataSource] = useState([]); const [masterDataSource, setMasterDataSource] = useState([]); const insets = useSafeAreaInsets(); 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, }, }); const dispatch = useDispatch(); // @ts-ignore const favouriteMovies = useSelector(state => state.appReducer.favouriteMovies); useEffect(() => { const loadFavourite = async () => { // @ts-ignore await dispatch(getFavourite()); }; console.log("test11111:", favouriteMovies); loadFavourite(); }, [dispatch]); const searchFilterFunction = (text: string) => { if (text) { const newData = favouriteMovies.filter(function (item: Movie) { const itemData = item.original_title ? item.original_title.toUpperCase() : ''.toUpperCase(); const textData = text.toUpperCase(); return itemData.indexOf(textData) > -1; }); setFilteredDataSource(newData); setSearch(text); } else { setFilteredDataSource(masterDataSource); setSearch(text); } }; return ( Favorite searchFilterFunction(text)} value={search} > item.original_title} renderItem={({item}) => } /> ); } type ListWidgetProps = { movie: Movie } export function ListWidget(props: ListWidgetProps) { const insets = useSafeAreaInsets(); const styles = StyleSheet.create({ filmCard: { width: 90, height: 130, borderRadius: 8, }, }); function formatTime(time: number) { console.log(time); const hours = Math.floor(time / 60); const minutes = time % 60; return `${hours}h ${minutes < 10 ? `0${minutes}` : minutes}m`; } return ( {props.movie.original_title} {props.movie.vote_average.toFixed(1)} {formatTime(props.movie.runtime)} {props.movie.overview} ); }