Add message when no teams were found

This commit is contained in:
Justin Edmund 2024-04-23 03:58:15 -07:00
parent e4d3ce0b61
commit bba89795a5
3 changed files with 29 additions and 14 deletions

View file

@ -9,7 +9,8 @@ export const useFetchTeams = (
setTotalPages: (value: number) => void, setTotalPages: (value: number) => void,
setRecordCount: (value: number) => void setRecordCount: (value: number) => void
) => { ) => {
const [isLoading, setIsLoading] = useState(false) const [loaded, setLoaded] = useState(false)
const [fetching, setFetching] = useState(false)
const [error, setError] = useState(false) const [error, setError] = useState(false)
function parseTeams(response: { [key: string]: any }, replace: boolean) { function parseTeams(response: { [key: string]: any }, replace: boolean) {
@ -17,15 +18,17 @@ export const useFetchTeams = (
setTotalPages(meta.total_pages) setTotalPages(meta.total_pages)
setRecordCount(meta.count) setRecordCount(meta.count)
setLoaded(true)
if (replace) { if (replace) {
replaceResults(parties) replaceResults(parties)
setIsLoading(false) setFetching(false)
} else appendResults(parties) } else appendResults(parties)
} }
function parseError(error: any) { function parseError(error: any) {
setIsLoading(false) setLoaded(true)
setFetching(false)
setError(true) setError(true)
} }
@ -62,7 +65,7 @@ export const useFetchTeams = (
const fetchTeams = useCallback( const fetchTeams = useCallback(
({ replace } = { replace: false }) => { ({ replace } = { replace: false }) => {
if (replace) setIsLoading(true) if (replace) setFetching(true)
const params = createParams() const params = createParams()
@ -89,7 +92,7 @@ export const useFetchTeams = (
username: string | undefined username: string | undefined
replace: boolean replace: boolean
}) => { }) => {
if (replace) setIsLoading(true) if (replace) setFetching(true)
const params = createParams() const params = createParams()
@ -115,7 +118,7 @@ export const useFetchTeams = (
const fetchSaved = useCallback( const fetchSaved = useCallback(
({ replace } = { replace: false }) => { ({ replace } = { replace: false }) => {
if (replace) setIsLoading(true) if (replace) setFetching(true)
const params = createParams() const params = createParams()
@ -139,8 +142,9 @@ export const useFetchTeams = (
fetchProfile, fetchProfile,
fetchSaved, fetchSaved,
processTeams, processTeams,
isLoading, loaded,
setIsLoading, fetching,
setFetching,
error, error,
} }
} }

View file

@ -76,8 +76,9 @@ export const useTeamFilter = (
fetchProfile, fetchProfile,
fetchSaved, fetchSaved,
processTeams, processTeams,
isLoading: isFetching, loaded,
setIsLoading: setFetching, fetching,
setFetching,
error: fetchError, error: fetchError,
} = useFetchTeams( } = useFetchTeams(
currentPage, currentPage,
@ -168,7 +169,8 @@ export const useTeamFilter = (
setAdvancedFilters, setAdvancedFilters,
parties, parties,
setParties, setParties,
isFetching, loaded,
fetching,
setFetching, setFetching,
fetchError, fetchError,
fetch, fetch,

View file

@ -32,6 +32,7 @@ import { CollectionPage } from '~utils/enums'
interface Props { interface Props {
context?: PageContextObj context?: PageContextObj
query: { [key: string]: string }
version: AppUpdate version: AppUpdate
error: boolean error: boolean
status?: ResponseStatus status?: ResponseStatus
@ -39,6 +40,7 @@ interface Props {
const TeamsRoute: React.FC<Props> = ({ const TeamsRoute: React.FC<Props> = ({
context, context,
query,
version, version,
error, error,
status, status,
@ -63,7 +65,8 @@ const TeamsRoute: React.FC<Props> = ({
recordCount, recordCount,
parties, parties,
setParties, setParties,
isFetching, loaded,
fetching,
setFetching, setFetching,
fetchError, fetchError,
fetch, fetch,
@ -126,7 +129,7 @@ const TeamsRoute: React.FC<Props> = ({
<GridRep <GridRep
party={party} party={party}
key={`party-${i}`} key={`party-${i}`}
loading={isFetching} loading={fetching}
onClick={() => goTo(party.shortcode)} onClick={() => goTo(party.shortcode)}
onSave={(teamId, favorited) => toggleFavorite(teamId, favorited)} onSave={(teamId, favorited) => toggleFavorite(teamId, favorited)}
/> />
@ -145,7 +148,12 @@ const TeamsRoute: React.FC<Props> = ({
const renderInfiniteScroll = ( const renderInfiniteScroll = (
<> <>
{parties.length === 0 && renderLoading(3)} {parties.length === 0 && !loaded && renderLoading(3)}
{parties.length === 0 && loaded && (
<div className="notFound">
<h2>There are no teams with your specified filters</h2>
</div>
)}
<InfiniteScroll <InfiniteScroll
dataLength={parties && parties.length > 0 ? parties.length : 0} dataLength={parties && parties.length > 0 ? parties.length : 0}
next={() => setCurrentPage(currentPage + 1)} next={() => setCurrentPage(currentPage + 1)}
@ -204,6 +212,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex
return { return {
props: { props: {
context: { raidGroups }, context: { raidGroups },
query,
version, version,
error: false, error: false,
...(await serverSideTranslations(locale, ['common'])), ...(await serverSideTranslations(locale, ['common'])),