This refactors the collection pages (teams, saved and profiles) into a bunch of hooks that handle various chunks of functionality. This way, the actual "pages" have significantly less logic and significantly less repeated code. * **useFavorites** handles favoriting teams * **useFilterState** handles the URL query filters * **usePaginationState** simply holds data pertaining to pagination * **useFetchTeams** handles fetching and parsing team data from the server * **useTeamFilter** pulls all other states together and handles some logic that is closest to the page Co-authored-by: Justin Edmund <383021+jedmund@users.noreply.github.com>
12 lines
271 B
TypeScript
12 lines
271 B
TypeScript
import React, { useEffect, useRef } from 'react'
|
|
|
|
const useDidMountEffect = (func: any, deps: any) => {
|
|
const didMount = useRef(false)
|
|
|
|
useEffect(() => {
|
|
if (didMount.current) func()
|
|
else didMount.current = true
|
|
}, deps)
|
|
}
|
|
|
|
export default useDidMountEffect
|