import React, { useCallback, useState } from 'react'; import { FlatList } from 'react-native'; import { useFocusEffect } from '@react-navigation/native'; import { usePostGetCountriesRankingMemoriam } from '@api/ranking'; import { Header, Loading, PageWrapper } from '../../../../components'; import { storage, StoreType } from '../../../../storage'; import { Profile } from '../Components/Profile'; import { FilterButton, FilterModal } from '../Components/FilterModal'; import { applyModalSort, dataRanking } from '../utils'; import { RankingDropdown } from '../utils/types'; import type { Ranking } from '..'; const InMemoriamScreen = () => { const [memoriamRanking, setMemoriamRanking] = useState([]); const [isLoading, setIsLoading] = useState(true); const [filteredData, setFilteredData] = useState([]); const [isModalActive, setIsModalActive] = useState(false); const [confirmedValueRanking, setConfirmedValueRanking] = useState(); const { data: inMemoriamCountries } = usePostGetCountriesRankingMemoriam(); useFocusEffect( useCallback(() => { const fetchRanking = async () => { const inMemoriam: string = storage.get('inMemoriamRanking', StoreType.STRING) as string; setMemoriamRanking( JSON.parse(inMemoriam).sort((a: Ranking, b: Ranking) => b.score_nm - a.score_nm) ); setIsLoading(false); }; fetchRanking(); }, []) ); if (isLoading) return ; return ( setIsModalActive(value)} applyFilter={(filterAge, filterRanking, filterCountry) => { setConfirmedValueRanking(filterRanking); setFilteredData(applyModalSort(memoriamRanking, filterAge, filterRanking, filterCountry)); setIsModalActive(false); }} countriesData={inMemoriamCountries ? inMemoriamCountries.data : []} />
setIsModalActive(!isModalActive)} />} /> 0 ? filteredData : memoriamRanking} keyExtractor={(item) => item.user_id.toString()} renderItem={({ item, index }) => ( )} /> ); }; export default InMemoriamScreen;