From adc987201e1ccd64f1f0c7b12df9ef056717ce41 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Thu, 22 Dec 2022 00:46:13 -0800 Subject: [PATCH] Update profile and filter bar --- components/FilterBar/index.tsx | 4 +-- components/GridRep/index.tsx | 2 +- components/SearchModal/index.tsx | 4 +-- pages/[username].tsx | 51 ++++++++++++++++++++------------ pages/saved.tsx | 6 ++-- pages/teams.tsx | 6 ++-- types/User.d.ts | 2 +- types/index.d.ts | 6 ++++ 8 files changed, 50 insertions(+), 31 deletions(-) diff --git a/components/FilterBar/index.tsx b/components/FilterBar/index.tsx index d648af50..062437c1 100644 --- a/components/FilterBar/index.tsx +++ b/components/FilterBar/index.tsx @@ -69,7 +69,7 @@ const FilterBar = (props: Props) => {
{props.children} { let url = '' if (mainhand) { - if (mainhand.element == 0 && props.grid[0].element) { + if (mainhand.element == 0 && props.grid[0] && props.grid[0].element) { url = `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/weapon-main/${mainhand.granblue_id}_${props.grid[0].element}.jpg` } else { url = `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/weapon-main/${mainhand.granblue_id}.jpg` diff --git a/components/SearchModal/index.tsx b/components/SearchModal/index.tsx index 61b0e24a..638b223b 100644 --- a/components/SearchModal/index.tsx +++ b/components/SearchModal/index.tsx @@ -85,8 +85,8 @@ const SearchModal = (props: Props) => { page: currentPage, }) .then((response) => { - setTotalPages(response.data.total_pages) - setRecordCount(response.data.count) + setTotalPages(response.data.meta.total_pages) + setRecordCount(response.data.meta.count) if (replace) { replaceResults(response.data.count, response.data.results) diff --git a/pages/[username].tsx b/pages/[username].tsx index 9714c55b..d04e6253 100644 --- a/pages/[username].tsx +++ b/pages/[username].tsx @@ -18,10 +18,12 @@ import GridRepCollection from '~components/GridRepCollection' import FilterBar from '~components/FilterBar' import type { NextApiRequest, NextApiResponse } from 'next' +import { PaginationObject } from '~types' interface Props { user?: User - teams?: { count: number; total_pages: number; results: Party[] } + teams?: Party[] + meta: PaginationObject raids: Raid[] sortedRaids: Raid[][] } @@ -95,9 +97,9 @@ const ProfileRoute: React.FC = (props: Props) => { // Set the initial parties from props useEffect(() => { if (props.teams) { - setTotalPages(props.teams.total_pages) - setRecordCount(props.teams.count) - replaceResults(props.teams.count, props.teams.results) + setTotalPages(props.meta.totalPages) + setRecordCount(props.meta.count) + replaceResults(props.meta.count, props.teams) } setCurrentPage(1) }, []) @@ -113,6 +115,7 @@ const ProfileRoute: React.FC = (props: Props) => { if (error.response != null) { console.error(error) } else { + // TODO: Put an alert here console.error('There was an error.') } }, []) @@ -135,15 +138,14 @@ const ProfileRoute: React.FC = (props: Props) => { params: { ...filters, ...{ headers: headers } }, }) .then((response) => { - setTotalPages(response.data.parties.total_pages) - setRecordCount(response.data.parties.count) + const results = response.data.profile.parties + const meta = response.data.meta - if (replace) - replaceResults( - response.data.parties.count, - response.data.parties.results - ) - else appendResults(response.data.parties.results) + setTotalPages(meta.total_pages) + setRecordCount(meta.count) + + if (replace) replaceResults(meta.count, results) + else appendResults(results) }) .catch((error) => handleError(error)) } @@ -282,11 +284,11 @@ const ProfileRoute: React.FC = (props: Props) => { >
{props.user?.picture.picture}

{props.user?.username}

@@ -374,6 +376,12 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex // Fetch initial set of parties here let user: User | null = null let teams: Party[] | null = null + let meta: PaginationObject = { + count: 0, + totalPages: 0, + perPage: 15 + } + if (query.username) { const response = await api.endpoints.users.getOne({ id: query.username, @@ -383,14 +391,19 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex ...headers, }) - user = response.data.user - teams = response.data.parties + user = response.data.profile + teams = response.data.profile.parties + + meta.count = response.data.meta.count + meta.totalPages = response.data.meta.total_pages + meta.perPage = response.data.meta.per_page } return { props: { user: user, teams: teams, + meta: meta, raids: raids, sortedRaids: sortedRaids, ...(await serverSideTranslations(locale, ["common"])), diff --git a/pages/saved.tsx b/pages/saved.tsx index 6d163cc7..0cabdd0e 100644 --- a/pages/saved.tsx +++ b/pages/saved.tsx @@ -130,11 +130,11 @@ const SavedRoute: React.FC = (props: Props) => { api .savedTeams({ ...filters, ...{ headers: headers } }) .then((response) => { - setTotalPages(response.data.total_pages) - setRecordCount(response.data.count) + setTotalPages(response.data.meta.total_pages) + setRecordCount(response.data.meta.count) if (replace) - replaceResults(response.data.count, response.data.results) + replaceResults(response.data.meta.count, response.data.results) else appendResults(response.data.results) }) .catch((error) => handleError(error)) diff --git a/pages/teams.tsx b/pages/teams.tsx index 3577f18a..b0005d46 100644 --- a/pages/teams.tsx +++ b/pages/teams.tsx @@ -130,11 +130,11 @@ const TeamsRoute: React.FC = (props: Props) => { api.endpoints.parties .getAll({ ...filters, ...{ headers: headers } }) .then((response) => { - setTotalPages(response.data.total_pages) - setRecordCount(response.data.count) + setTotalPages(response.data.meta.total_pages) + setRecordCount(response.data.meta.count) if (replace) - replaceResults(response.data.count, response.data.results) + replaceResults(response.data.meta.count, response.data.results) else appendResults(response.data.results) }) .catch((error) => handleError(error)) diff --git a/types/User.d.ts b/types/User.d.ts index 2d344c6c..fdfcedd3 100644 --- a/types/User.d.ts +++ b/types/User.d.ts @@ -2,7 +2,7 @@ interface User { id: string username: string granblueId: number - picture: { + avatar: { picture: string element: string } diff --git a/types/index.d.ts b/types/index.d.ts index d37ca641..6c448c56 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -7,3 +7,9 @@ export type JobSkillObject = { 2: JobSkill | undefined 3: JobSkill | undefined } + +export type PaginationObject = { + count: number + totalPages: number + perPage: number +}