Caching fetched resources

This commit is contained in:
mrfry 2021-06-09 09:48:31 +02:00
parent 7e93e41edc
commit 3daeef184a
12 changed files with 213 additions and 85 deletions

View file

@ -84,7 +84,7 @@ function sortDataBy(data, key) {
})
}
export default function RankList({ globalData }) {
export default function RankList({ globalData, globalState, setGlobalState }) {
const userId = globalData.userId
const [ranklist, setRanklist] = useState(null)
const [selfUserId, setSelfUserId] = useState('...')
@ -96,17 +96,30 @@ export default function RankList({ globalData }) {
const getList = () => {
setSum()
setRanklist(null)
getListFromServer(since)
.then((data) => {
setRanklist(data.list || [])
setSum(data.sum)
if (data.selfuserId) {
setSelfUserId(data.selfuserId)
}
})
.catch(() => {
setRanklist(null)
})
if (globalState.ranklist) {
const { list, sum, selfuserId } = globalState.ranklist
setRanklist(list || [])
setSum(sum)
if (selfuserId) {
setSelfUserId(selfuserId)
}
} else {
getListFromServer(since)
.then((data) => {
const { list, sum, selfuserId } = data
setRanklist(list || [])
setSum(sum)
if (selfuserId) {
setSelfUserId(selfuserId)
}
setGlobalState({
ranklist: data,
})
})
.catch(() => {
setRanklist(null)
})
}
}
useEffect(() => {