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';
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);
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 => {
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]);
<Container>
<Detail actions={actions} event={event} />
{episodes.length ? <>
- <h2 className="mt-4">{i18n.t('events.upcomingEpisodes')}</h2>
+ <h2 className="mt-4">
+ {t(hasConcluded(event)
+ ? 'events.pastEpisodes'
+ : 'events.upcomingEpisodes'
+ )}
+ </h2>
<EpisodeList episodes={episodes} />
</> : null}
</Container>
/>
</ErrorBoundary>;
};
-
-export default withTranslation()(Event);