1
Fork 0
- Used useCallback to improve the performance
This commit is contained in:
stz184 2020-09-27 16:58:26 +03:00
parent df973c3992
commit abc0bc54d5
1 changed files with 26 additions and 23 deletions

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'
import React, { useCallback, useState } from 'react'
import ReactRouterPropTypes from 'react-router-prop-types'
import gql from 'graphql-tag'
import { Query } from 'react-apollo'
@ -51,29 +51,32 @@ function AlbumPage({ match }) {
match.params.subPage === 'favorites'
)
const toggleFavorites = refetch => {
const newState = !onlyFavorites
if (
(refetchNeededAll && !newState) ||
(refetchNeededFavorites && newState)
) {
refetch({ id: albumId, onlyFavorites: newState }).then(() => {
if (onlyFavorites) {
refetchNeededFavorites = false
} else {
refetchNeededAll = false
}
const toggleFavorites = useCallback(
refetch => {
const newState = !onlyFavorites
if (
(refetchNeededAll && !newState) ||
(refetchNeededFavorites && newState)
) {
refetch({ id: albumId, onlyFavorites: newState }).then(() => {
if (onlyFavorites) {
refetchNeededFavorites = false
} else {
refetchNeededAll = false
}
setOnlyFavorites(newState)
})
} else {
setOnlyFavorites(newState)
})
} else {
setOnlyFavorites(newState)
}
history.replaceState(
{},
'',
'/album/' + albumId + (newState ? '/favorites' : '')
)
}
}
history.replaceState(
{},
'',
'/album/' + albumId + (newState ? '/favorites' : '')
)
},
[onlyFavorites, setOnlyFavorites]
)
return (
<Query query={albumQuery} variables={{ id: albumId, onlyFavorites }}>