X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fpages%2FEvent.js;h=fa5dc2163c30c3432356857dbfa330fa153c28ff;hb=cdb12f8f7d161e0e17d23dd1164d3c8b1067be61;hp=9e5c09f66995d10ab7322cce26ddc1808ba804bd;hpb=27802e47533789b87644ddc718ba9d7693424537;p=alttp.git diff --git a/resources/js/pages/Event.js b/resources/js/pages/Event.js index 9e5c09f..fa5dc21 100644 --- a/resources/js/pages/Event.js +++ b/resources/js/pages/Event.js @@ -3,7 +3,7 @@ import moment from 'moment'; import React from 'react'; import { Container } from 'react-bootstrap'; import { Helmet } from 'react-helmet'; -import { withTranslation } from 'react-i18next'; +import { useTranslation } from 'react-i18next'; import { useParams } from 'react-router-dom'; import toastr from 'toastr'; @@ -15,17 +15,19 @@ import Loading from '../components/common/Loading'; import EpisodeList from '../components/episodes/List'; import Detail from '../components/events/Detail'; import Dialog from '../components/techniques/Dialog'; +import { hasConcluded } from '../helpers/Event'; import { mayEditContent, } from '../helpers/permissions'; import { getTranslation } from '../helpers/Technique'; -import { useUser } from '../helpers/UserContext'; +import { useUser } from '../hooks/user'; import i18n from '../i18n'; -const Event = () => { +export const Component = () => { const params = useParams(); const { name } = params; - const user = useUser(); + const { user } = useUser(); + const { t } = useTranslation(); const [error, setError] = React.useState(null); const [loading, setLoading] = React.useState(true); @@ -47,13 +49,19 @@ const Event = () => { setEpisodes([]); return; } + const params = { + event: [event.id], + }; + if (hasConcluded(event)) { + params.limit = 25; + params.reverse = '1'; + } else { + params.after = moment().subtract(3, 'hours').toISOString(); + params.before = moment().add(14, 'days').toISOString(); + } axios.get(`/api/episodes`, { signal: controller.signal, - params: { - after: moment().subtract(3, 'hours').toISOString(), - before: moment().add(14, 'days').toISOString(), - event: [event.id], - }, + params, }).then(response => { setEpisodes(response.data || []); }).catch(e => { @@ -69,14 +77,14 @@ const Event = () => { parent_id: event.description_id, ...values, }); - toastr.success(i18n.t('content.saveSuccess')); + toastr.success(t('content.saveSuccess')); setEvent(event => ({ ...event, description: response.data, })); setShowContentDialog(false); } catch (e) { - toastr.error(i18n.t('content.saveError')); + toastr.error(t('content.saveError')); } }, [event && event.description_id]); @@ -141,7 +149,12 @@ const Event = () => { {episodes.length ? <> -

{i18n.t('events.upcomingEpisodes')}

+

+ {t(hasConcluded(event) + ? 'events.pastEpisodes' + : 'events.upcomingEpisodes' + )} +

: null}
@@ -154,5 +167,3 @@ const Event = () => { /> ; }; - -export default withTranslation()(Event);