|
@@ -1,4 +1,5 @@
|
|
|
-import React, { useEffect, useState } from 'react';
|
|
|
+import React, { useCallback, useState } from 'react';
|
|
|
+import { useFocusEffect } from '@react-navigation/native';
|
|
|
import { Header, PageWrapper } from '../../../../components';
|
|
|
import { getOnlineStatus, storage, StoreType } from '../../../../storage';
|
|
|
|
|
@@ -11,12 +12,23 @@ import { fetchFullRanking } from '@api/ranking';
|
|
|
const MasterRankingScreen = () => {
|
|
|
const [masterRanking, setMasterRanking] = useState<Ranking[]>([]);
|
|
|
const { mutateAsync } = fetchFullRanking();
|
|
|
+ const [isLoading, setIsLoading] = useState(true);
|
|
|
|
|
|
- const ranking = storage.get('masterRanking', StoreType.STRING) as string;
|
|
|
+ useFocusEffect(
|
|
|
+ useCallback(() => {
|
|
|
+ const fetchRanking = async () => {
|
|
|
+ const ranking = storage.get('masterRanking', StoreType.STRING) as string;
|
|
|
+ setMasterRanking(JSON.parse(ranking).sort((a: Ranking, b: Ranking) => b.score_nm - a.score_nm));
|
|
|
+ setIsLoading(false);
|
|
|
+ };
|
|
|
|
|
|
- useEffect(() => {
|
|
|
- setMasterRanking(JSON.parse(ranking).sort((a: Ranking, b: Ranking) => b.score_nm - a.score_nm));
|
|
|
- }, []);
|
|
|
+ fetchRanking();
|
|
|
+ }, [])
|
|
|
+ );
|
|
|
+
|
|
|
+ if (isLoading) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
const getFullRanking = async () => {
|
|
|
if (getOnlineStatus()) {
|