diff --git a/pages/[username].tsx b/pages/[username].tsx index 37ac466b..fc75944a 100644 --- a/pages/[username].tsx +++ b/pages/[username].tsx @@ -9,10 +9,13 @@ import InfiniteScroll from 'react-infinite-scroll-component' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import api from '~utils/api' + import setUserToken from '~utils/setUserToken' import extractFilters from '~utils/extractFilters' +import fetchLatestVersion from '~utils/fetchLatestVersion' import organizeRaids from '~utils/organizeRaids' import useDidMountEffect from '~utils/useDidMountEffect' +import { appState } from '~utils/appState' import { elements, allElement } from '~data/elements' import { emptyPaginationObject } from '~utils/emptyStates' import { printError } from '~utils/reportError' @@ -30,6 +33,7 @@ interface Props { meta: PaginationObject raids: Raid[] sortedRaids: Raid[][] + version: AppUpdate } const ProfileRoute: React.FC = (props: Props) => { @@ -99,6 +103,7 @@ const ProfileRoute: React.FC = (props: Props) => { setTotalPages(props.meta.totalPages) setRecordCount(props.meta.count) replaceResults(props.meta.count, props.teams) + appState.version = props.version } setCurrentPage(1) }, []) @@ -352,6 +357,9 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex setUserToken(req, res) try { + // Fetch latest version + const version = await fetchLatestVersion() + // Fetch and organize raids let { raids, sortedRaids } = await api.endpoints.raids .getAll() @@ -393,6 +401,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex meta: meta, raids: raids, sortedRaids: sortedRaids, + version: version, ...(await serverSideTranslations(locale, ['common', 'roadmap'])), // Will be passed to the page component as props }, diff --git a/pages/new/index.tsx b/pages/new/index.tsx index 3464fe50..650448bb 100644 --- a/pages/new/index.tsx +++ b/pages/new/index.tsx @@ -6,6 +6,7 @@ import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import Party from '~components/Party' import api from '~utils/api' +import fetchLatestVersion from '~utils/fetchLatestVersion' import organizeRaids from '~utils/organizeRaids' import setUserToken from '~utils/setUserToken' import { appState } from '~utils/appState' @@ -21,6 +22,7 @@ interface Props { raids: Raid[] sortedRaids: Raid[][] weaponKeys: GroupedWeaponKeys + version: AppUpdate } const NewRoute: React.FC = (props: Props) => { @@ -41,6 +43,7 @@ const NewRoute: React.FC = (props: Props) => { appState.jobs = props.jobs appState.jobSkills = props.jobSkills appState.weaponKeys = props.weaponKeys + appState.version = props.version } return ( @@ -84,6 +87,10 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex setUserToken(req, res) try { + // Fetch latest version + const version = await fetchLatestVersion() + + // Fetch and organize raids let { raids, sortedRaids } = await api.endpoints.raids .getAll() .then((response) => organizeRaids(response.data)) @@ -105,6 +112,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex raids: raids, sortedRaids: sortedRaids, weaponKeys: weaponKeys, + version: version, ...(await serverSideTranslations(locale, ['common', 'roadmap'])), // Will be passed to the page component as props }, diff --git a/pages/saved.tsx b/pages/saved.tsx index 546c1c09..09b2ec93 100644 --- a/pages/saved.tsx +++ b/pages/saved.tsx @@ -12,8 +12,10 @@ import clonedeep from 'lodash.clonedeep' import api from '~utils/api' import setUserToken from '~utils/setUserToken' import extractFilters from '~utils/extractFilters' +import fetchLatestVersion from '~utils/fetchLatestVersion' import organizeRaids from '~utils/organizeRaids' import useDidMountEffect from '~utils/useDidMountEffect' +import { appState } from '~utils/appState' import { elements, allElement } from '~data/elements' import { emptyPaginationObject } from '~utils/emptyStates' import { printError } from '~utils/reportError' @@ -30,6 +32,7 @@ interface Props { meta: PaginationObject raids: Raid[] sortedRaids: Raid[][] + version: AppUpdate } const SavedRoute: React.FC = (props: Props) => { @@ -98,6 +101,7 @@ const SavedRoute: React.FC = (props: Props) => { setTotalPages(props.meta.totalPages) setRecordCount(props.meta.count) replaceResults(props.meta.count, props.teams) + appState.version = props.version } setCurrentPage(1) }, []) @@ -354,6 +358,9 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex setUserToken(req, res) try { + // Fetch latest version + const version = await fetchLatestVersion() + // Fetch and organize raids let { raids, sortedRaids } = await api.endpoints.raids .getAll() @@ -384,6 +391,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex meta: meta, raids: raids, sortedRaids: sortedRaids, + version: version, ...(await serverSideTranslations(locale, ['common', 'roadmap'])), // Will be passed to the page component as props }, diff --git a/pages/teams.tsx b/pages/teams.tsx index a27da820..b680412a 100644 --- a/pages/teams.tsx +++ b/pages/teams.tsx @@ -12,8 +12,10 @@ import clonedeep from 'lodash.clonedeep' import api from '~utils/api' import setUserToken from '~utils/setUserToken' import extractFilters from '~utils/extractFilters' +import fetchLatestVersion from '~utils/fetchLatestVersion' import organizeRaids from '~utils/organizeRaids' import useDidMountEffect from '~utils/useDidMountEffect' +import { appState } from '~utils/appState' import { elements, allElement } from '~data/elements' import { emptyPaginationObject } from '~utils/emptyStates' import { printError } from '~utils/reportError' @@ -29,6 +31,7 @@ interface Props { teams?: Party[] meta: PaginationObject sortedRaids: Raid[][] + version: AppUpdate } const TeamsRoute: React.FC = (props: Props) => { @@ -97,6 +100,7 @@ const TeamsRoute: React.FC = (props: Props) => { setTotalPages(props.meta.totalPages) setRecordCount(props.meta.count) replaceResults(props.meta.count, props.teams) + appState.version = props.version } setCurrentPage(1) }, []) @@ -364,8 +368,11 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex // Set headers for server-side requests setUserToken(req, res) - // Fetch and organize raids try { + // Fetch latest version + const version = await fetchLatestVersion() + + // Fetch and organize raids let { raids, sortedRaids } = await api.endpoints.raids .getAll() .then((response) => organizeRaids(response.data)) @@ -395,6 +402,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex meta: meta, raids: raids, sortedRaids: sortedRaids, + version: version, ...(await serverSideTranslations(locale, ['common', 'roadmap'])), // Will be passed to the page component as props },