diff --git a/src/features/ServerPage/common/PageLayout/components/Sidebar/components/ServerInfo/ServerInfo.tsx b/src/features/ServerPage/common/PageLayout/components/Sidebar/components/ServerInfo/ServerInfo.tsx index 0acccbd..69d2838 100644 --- a/src/features/ServerPage/common/PageLayout/components/Sidebar/components/ServerInfo/ServerInfo.tsx +++ b/src/features/ServerPage/common/PageLayout/components/Sidebar/components/ServerInfo/ServerInfo.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState, useEffect } from 'react'; import useDateUtils from 'libs/date/useDateUtils'; import useServer from 'features/ServerPage/libs/ServerContext/useServer'; import useStyles from './useStyles'; @@ -20,9 +20,27 @@ const ServerInfo = ({ t }: Props) => { numberOfVillages, } = useServer(); const dateUtils = useDateUtils(); - const classes = useStyles(); + const getDataUpdatedAtText = () => { + return t('pageLayout.sidebar.serverInfo.dataUpdatedAt', { + date: dateUtils.formatDistanceToNow(new Date(dataUpdatedAt), { + addSuffix: true, + }), + }); + }; + const [dataUpdatedAtText, setDataUpdatedAtText] = useState( + getDataUpdatedAtText() + ); + useEffect(() => { + const intervalID = setInterval(() => { + setDataUpdatedAtText(getDataUpdatedAtText()); + }, 30000); + return () => { + clearInterval(intervalID); + }; // eslint-disable-next-line + }, [dataUpdatedAt, t, dateUtils]); + return (
@@ -43,13 +61,7 @@ const ServerInfo = ({ t }: Props) => { count: numberOfVillages, })} - - {t('pageLayout.sidebar.serverInfo.dataUpdatedAt', { - date: dateUtils.formatDistanceToNow(new Date(dataUpdatedAt), { - addSuffix: true, - }), - })} - + {dataUpdatedAtText}
); }; diff --git a/src/features/ServerPage/features/PlayerPage/features/IndexPage/IndexPage.tsx b/src/features/ServerPage/features/PlayerPage/features/IndexPage/IndexPage.tsx index ec0de4e..85283db 100644 --- a/src/features/ServerPage/features/PlayerPage/features/IndexPage/IndexPage.tsx +++ b/src/features/ServerPage/features/PlayerPage/features/IndexPage/IndexPage.tsx @@ -82,13 +82,18 @@ function IndexPage() { })`, }, { - field: 'deletedAt', + field: player.deletedAt ? 'deletedAt' : 'lastActivityAt', value: player.deletedAt ? dateUtils.format( dateUtils.date(player.deletedAt), DATE_FORMAT.DAY_MONTH_AND_YEAR ) - : '-', + : dateUtils.formatDistanceToNow( + new Date(player.lastActivityAt ?? 0), + { + addSuffix: true, + } + ), }, { field: 'bestRank', diff --git a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/context.ts b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/context.ts index e78f780..49494e0 100644 --- a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/context.ts +++ b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/context.ts @@ -21,6 +21,7 @@ const ctx = createContext({ mostPointsAt: new Date(0), mostVillages: 0, mostVillagesAt: new Date(0), + lastActivityAt: new Date(0), bestRank: 0, bestRankAt: new Date(0), joinedAt: new Date(0), diff --git a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/queries.ts b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/queries.ts index 4eba37f..0abd7b8 100644 --- a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/queries.ts +++ b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/queries.ts @@ -27,6 +27,7 @@ export const PLAYER = gql` joinedAt servers deletedAt + lastActivityAt nameChanges { oldName newName diff --git a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/types.ts b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/types.ts index 35c3797..bdff76c 100644 --- a/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/types.ts +++ b/src/features/ServerPage/features/PlayerPage/libs/PlayerPageContext/types.ts @@ -28,6 +28,7 @@ export type Player = { bestRankAt: Date | string; joinedAt: Date | string; deletedAt?: Date | string; + lastActivityAt: Date | string; servers: string[]; nameChanges: NameChange[]; tribe?: { diff --git a/src/features/ServerPage/libs/ServerContext/Provider.tsx b/src/features/ServerPage/libs/ServerContext/Provider.tsx index 849a8ad..c1c9f7f 100644 --- a/src/features/ServerPage/libs/ServerContext/Provider.tsx +++ b/src/features/ServerPage/libs/ServerContext/Provider.tsx @@ -25,7 +25,7 @@ function Provider({ children }: Props) { ServerList, ServersQueryVariables >(SERVERS, { - fetchPolicy: 'cache-first', + fetchPolicy: 'cache-and-network', variables: { limit: 1, filter: { diff --git a/src/libs/i18n/en/server-page/player-page/index-page.ts b/src/libs/i18n/en/server-page/player-page/index-page.ts index 2793741..276a74d 100644 --- a/src/libs/i18n/en/server-page/player-page/index-page.ts +++ b/src/libs/i18n/en/server-page/player-page/index-page.ts @@ -24,6 +24,7 @@ const translations = { mostPoints: 'Most points', mostVillages: 'Most villages', servers: 'Servers', + lastActivityAt: 'Last activity', }, nameChanges: { title: 'Name changes', diff --git a/src/libs/i18n/pl/server-page/player-page/index-page.ts b/src/libs/i18n/pl/server-page/player-page/index-page.ts index 32bad57..e28daca 100644 --- a/src/libs/i18n/pl/server-page/player-page/index-page.ts +++ b/src/libs/i18n/pl/server-page/player-page/index-page.ts @@ -24,6 +24,7 @@ const translations = { mostPoints: 'Najwięcej punktów', mostVillages: 'Najwięcej wiosek', servers: 'Serwery', + lastActivityAt: 'Ostatnia aktywność', }, nameChanges: { title: 'Zmiany nicków', diff --git a/src/libs/i18n/pt/server-page/player-page/index-page.ts b/src/libs/i18n/pt/server-page/player-page/index-page.ts index 6bf0ceb..05de9c0 100644 --- a/src/libs/i18n/pt/server-page/player-page/index-page.ts +++ b/src/libs/i18n/pt/server-page/player-page/index-page.ts @@ -24,6 +24,7 @@ const translations = { mostPoints: 'Maior pontuação', mostVillages: 'Maior quantidade de aldeias', servers: 'Servidores', + lastActivityAt: 'Last activity', }, nameChanges: { title: 'Mudanças de nome', diff --git a/src/libs/i18n/pt_br/server-page/player-page/index-page.ts b/src/libs/i18n/pt_br/server-page/player-page/index-page.ts index 87fe684..545c219 100644 --- a/src/libs/i18n/pt_br/server-page/player-page/index-page.ts +++ b/src/libs/i18n/pt_br/server-page/player-page/index-page.ts @@ -24,6 +24,7 @@ const translations = { mostPoints: 'Maior pontuação', mostVillages: 'Maior quantidade de aldeias', servers: 'Servidores', + lastActivityAt: 'Last activity', }, nameChanges: { title: 'Mudanças de nome',