1
0
Fork 0
mirror of https://framagit.org/framasoft/mobilizon.git synced 2024-12-22 07:52:43 +00:00

Merge branch 'passed-events-related' into 'main'

fix: don't show passed/finished events in related events section

See merge request framasoft/mobilizon!1482
This commit is contained in:
Thomas Citharel 2023-11-22 16:19:13 +00:00
commit 797eb2334b
2 changed files with 15 additions and 2 deletions

View file

@ -64,6 +64,7 @@ const FULL_EVENT_FRAGMENT = gql`
uuid uuid
title title
beginsOn beginsOn
endsOn
status status
language language
picture { picture {

View file

@ -243,12 +243,12 @@
<section <section
class="bg-white dark:bg-zinc-700 px-3 pt-1 pb-3 rounded my-4" class="bg-white dark:bg-zinc-700 px-3 pt-1 pb-3 rounded my-4"
v-if="(event?.relatedEvents ?? []).length > 0" v-if="(nonPassedRelatedEvents ?? []).length > 0"
> >
<h2 class="text-2xl mb-2"> <h2 class="text-2xl mb-2">
{{ t("These events may interest you") }} {{ t("These events may interest you") }}
</h2> </h2>
<multi-card :events="event?.relatedEvents ?? []" /> <multi-card :events="nonPassedRelatedEvents ?? []" />
</section> </section>
<o-modal <o-modal
v-model:active="showMap" v-model:active="showMap"
@ -327,6 +327,7 @@ import { useI18n } from "vue-i18n";
import { Notifier } from "@/plugins/notifier"; import { Notifier } from "@/plugins/notifier";
import { AbsintheGraphQLErrors } from "@/types/errors.model"; import { AbsintheGraphQLErrors } from "@/types/errors.model";
import { useHead } from "@unhead/vue"; import { useHead } from "@unhead/vue";
import { IEvent } from "@/types/event.model";
const IntegrationTwitch = defineAsyncComponent( const IntegrationTwitch = defineAsyncComponent(
() => import("@/components/Event/Integrations/TwitchIntegration.vue") () => import("@/components/Event/Integrations/TwitchIntegration.vue")
@ -611,6 +612,17 @@ const organizerDomain = computed((): string | undefined => {
return organizer.value?.domain ?? undefined; return organizer.value?.domain ?? undefined;
}); });
const nonPassedRelatedEvents = computed((): IEvent[] | undefined => {
let relatedEvents = event.value?.relatedEvents;
return relatedEvents?.filter((relatedEvent: IEvent) => {
const endsOn = relatedEvent.endsOn
? new Date(relatedEvent.endsOn)
: new Date(relatedEvent.beginsOn);
return endsOn > new Date();
});
});
useHead({ useHead({
title: computed(() => eventTitle.value ?? ""), title: computed(() => eventTitle.value ?? ""),
meta: [{ name: "description", content: eventDescription.value }], meta: [{ name: "description", content: eventDescription.value }],