web: optimize event data detching on /arrangementer
This commit is contained in:
@@ -4,7 +4,7 @@ import {
|
|||||||
eventsOverviewQuery,
|
eventsOverviewQuery,
|
||||||
getSingularEvents,
|
getSingularEvents,
|
||||||
getFutureOccurrences,
|
getFutureOccurrences,
|
||||||
EventFragment,
|
EventOverviewItemFragment,
|
||||||
EventCategory,
|
EventCategory,
|
||||||
EventOrganizer,
|
EventOrganizer,
|
||||||
} from "@/lib/event";
|
} from "@/lib/event";
|
||||||
@@ -59,7 +59,7 @@ export async function GET(req: NextRequest) {
|
|||||||
throw new Error("Failed to fetch events");
|
throw new Error("Failed to fetch events");
|
||||||
}
|
}
|
||||||
|
|
||||||
const futureEvents = (data?.events?.futureEvents ?? []) as EventFragment[];
|
const futureEvents = (data?.events?.futureEvents ?? []) as EventOverviewItemFragment[];
|
||||||
const eventCategories = (data?.eventCategories ?? []) as EventCategory[];
|
const eventCategories = (data?.eventCategories ?? []) as EventCategory[];
|
||||||
const eventOrganizers = (data?.eventOrganizers ?? []) as EventOrganizer[];
|
const eventOrganizers = (data?.eventOrganizers ?? []) as EventOrganizer[];
|
||||||
const venues = (data?.venues ?? []) as VenueFragment[];
|
const venues = (data?.venues ?? []) as VenueFragment[];
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { unmaskFragment } from "@/gql";
|
|||||||
import {
|
import {
|
||||||
EventCategoryFragmentDefinition,
|
EventCategoryFragmentDefinition,
|
||||||
EventOrganizerFragmentDefinition,
|
EventOrganizerFragmentDefinition,
|
||||||
EventFragment,
|
EventOverviewItemFragment,
|
||||||
EventCategory,
|
EventCategory,
|
||||||
SingularEvent,
|
SingularEvent,
|
||||||
getSingularEvents,
|
getSingularEvents,
|
||||||
@@ -44,7 +44,7 @@ export const EventContainer = ({
|
|||||||
eventOrganizers,
|
eventOrganizers,
|
||||||
venues,
|
venues,
|
||||||
}: {
|
}: {
|
||||||
events: EventFragment[];
|
events: EventOverviewItemFragment[];
|
||||||
eventCategories: EventCategory[];
|
eventCategories: EventCategory[];
|
||||||
eventOrganizers: EventOrganizer[];
|
eventOrganizers: EventOrganizer[];
|
||||||
venues: VenueFragment[];
|
venues: VenueFragment[];
|
||||||
@@ -233,7 +233,7 @@ export const EventContainer = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const EventList = ({ events }: { events: EventFragment[] }) => {
|
const EventList = ({ events }: { events: EventOverviewItemFragment[] }) => {
|
||||||
if (events.length === 0) {
|
if (events.length === 0) {
|
||||||
return <div className={styles.noEvents}>Ingen kommende arrangementer.</div>;
|
return <div className={styles.noEvents}>Ingen kommende arrangementer.</div>;
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ const CalendarDay = ({
|
|||||||
events,
|
events,
|
||||||
}: {
|
}: {
|
||||||
day: string;
|
day: string;
|
||||||
events: SingularEvent[];
|
events: SingularEvent<EventOverviewItemFragment>[];
|
||||||
}) => (
|
}) => (
|
||||||
<div
|
<div
|
||||||
className={`${styles.calendarDay} ${events.length === 0 && styles.empty}`}
|
className={`${styles.calendarDay} ${events.length === 0 && styles.empty}`}
|
||||||
@@ -274,7 +274,11 @@ const CalendarDay = ({
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
const CalendarWeek = ({ days }: { days: Record<string, SingularEvent[]> }) => {
|
const CalendarWeek = ({
|
||||||
|
days,
|
||||||
|
}: {
|
||||||
|
days: Record<string, SingularEvent<EventOverviewItemFragment>[]>;
|
||||||
|
}) => {
|
||||||
const daysInWeek = Object.keys(days);
|
const daysInWeek = Object.keys(days);
|
||||||
const firstDay = daysInWeek[0];
|
const firstDay = daysInWeek[0];
|
||||||
const lastDay = daysInWeek[daysInWeek.length - 1];
|
const lastDay = daysInWeek[daysInWeek.length - 1];
|
||||||
@@ -310,7 +314,7 @@ function maybeYear(yearMonthString: string) {
|
|||||||
return ` ${yearMonth.getFullYear()}`;
|
return ` ${yearMonth.getFullYear()}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const EventCalendar = ({ events }: { events: EventFragment[] }) => {
|
const EventCalendar = ({ events }: { events: EventOverviewItemFragment[] }) => {
|
||||||
const futureSingularEvents = getSingularEvents(events).filter(
|
const futureSingularEvents = getSingularEvents(events).filter(
|
||||||
(x) => x.occurrence?.start && isTodayOrFuture(x.occurrence.start),
|
(x) => x.occurrence?.start && isTodayOrFuture(x.occurrence.start),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import { EventContainer } from "@/components/events/EventContainer";
|
|||||||
import { PageHeader } from "@/components/general/PageHeader";
|
import { PageHeader } from "@/components/general/PageHeader";
|
||||||
import {
|
import {
|
||||||
EventCategory,
|
EventCategory,
|
||||||
EventFragment,
|
EventOverviewItemFragment,
|
||||||
EventOrganizer,
|
EventOrganizer,
|
||||||
eventsOverviewQuery,
|
eventsOverviewQuery,
|
||||||
} from "@/lib/event";
|
} from "@/lib/event";
|
||||||
|
|
||||||
export type EventIndexViewProps = {
|
export type EventIndexViewProps = {
|
||||||
events: EventFragment[];
|
events: EventOverviewItemFragment[];
|
||||||
eventCategories: EventCategory[];
|
eventCategories: EventCategory[];
|
||||||
eventOrganizers: EventOrganizer[];
|
eventOrganizers: EventOrganizer[];
|
||||||
venues: VenueFragment[];
|
venues: VenueFragment[];
|
||||||
@@ -30,7 +30,7 @@ export async function loadEventIndexProps(): Promise<EventIndexViewProps> {
|
|||||||
throw new Error("Failed to load /arrangementer");
|
throw new Error("Failed to load /arrangementer");
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
events: data.events.futureEvents as EventFragment[],
|
events: data.events.futureEvents as EventOverviewItemFragment[],
|
||||||
eventCategories: data.eventCategories as EventCategory[],
|
eventCategories: data.eventCategories as EventCategory[],
|
||||||
eventOrganizers: data.eventOrganizers as EventOrganizer[],
|
eventOrganizers: data.eventOrganizers as EventOrganizer[],
|
||||||
venues: data.venues as VenueFragment[],
|
venues: data.venues as VenueFragment[],
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
SingularEvent,
|
SingularEvent,
|
||||||
EventFragment,
|
EventFragment,
|
||||||
EventListItemFragment,
|
EventListItemFragment,
|
||||||
|
EventOverviewItemFragment,
|
||||||
getFutureOccurrences,
|
getFutureOccurrences,
|
||||||
} from "@/lib/event";
|
} from "@/lib/event";
|
||||||
import {
|
import {
|
||||||
@@ -27,8 +28,10 @@ export const EventItem = ({
|
|||||||
event:
|
event:
|
||||||
| SingularEvent
|
| SingularEvent
|
||||||
| SingularEvent<EventListItemFragment>
|
| SingularEvent<EventListItemFragment>
|
||||||
|
| SingularEvent<EventOverviewItemFragment>
|
||||||
| EventFragment
|
| EventFragment
|
||||||
| EventListItemFragment;
|
| EventListItemFragment
|
||||||
|
| EventOverviewItemFragment;
|
||||||
mode: "list" | "calendar" | "singular-time-only";
|
mode: "list" | "calendar" | "singular-time-only";
|
||||||
size?: "small" | "medium" | "large";
|
size?: "small" | "medium" | "large";
|
||||||
imageLoading?: "eager" | "lazy";
|
imageLoading?: "eager" | "lazy";
|
||||||
|
|||||||
+9
-3
@@ -66,10 +66,11 @@ type Documents = {
|
|||||||
"\n fragment EventCategory on EventCategory {\n __typename\n name\n slug\n pig\n showInFilters\n }\n": typeof types.EventCategoryFragmentDoc,
|
"\n fragment EventCategory on EventCategory {\n __typename\n name\n slug\n pig\n showInFilters\n }\n": typeof types.EventCategoryFragmentDoc,
|
||||||
"\n fragment EventOrganizer on EventOrganizer {\n __typename\n id\n name\n slug\n externalUrl\n association {\n ... on AssociationPage {\n url\n }\n }\n }\n": typeof types.EventOrganizerFragmentDoc,
|
"\n fragment EventOrganizer on EventOrganizer {\n __typename\n id\n name\n slug\n externalUrl\n association {\n ... on AssociationPage {\n url\n }\n }\n }\n": typeof types.EventOrganizerFragmentDoc,
|
||||||
"\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n": typeof types.EventListItemFragmentDoc,
|
"\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n": typeof types.EventListItemFragmentDoc,
|
||||||
|
"\n fragment EventOverviewItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": typeof types.EventOverviewItemFragmentDoc,
|
||||||
"\n fragment Event on EventPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n subtitle\n lead\n body {\n ...OneLevelOfBlocks\n }\n featuredImage {\n ...Image\n }\n pig\n facebookUrl\n ticketUrl\n free\n priceRegular\n priceMember\n priceStudent\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": typeof types.EventFragmentDoc,
|
"\n fragment Event on EventPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n subtitle\n lead\n body {\n ...OneLevelOfBlocks\n }\n featuredImage {\n ...Image\n }\n pig\n facebookUrl\n ticketUrl\n free\n priceRegular\n priceMember\n priceStudent\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": typeof types.EventFragmentDoc,
|
||||||
"\n fragment EventIndex on EventIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n }\n": typeof types.EventIndexFragmentDoc,
|
"\n fragment EventIndex on EventIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n }\n": typeof types.EventIndexFragmentDoc,
|
||||||
"\n query eventIndexMetadata {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n }\n": typeof types.EventIndexMetadataDocument,
|
"\n query eventIndexMetadata {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n }\n": typeof types.EventIndexMetadataDocument,
|
||||||
"\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...Event\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n": typeof types.FutureEventsDocument,
|
"\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...EventOverviewItem\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n": typeof types.FutureEventsDocument,
|
||||||
"\n fragment NewsListItem on NewsPage {\n __typename\n id\n slug\n title\n firstPublishedAt\n excerpt\n featuredImage {\n ...Image\n }\n }\n": typeof types.NewsListItemFragmentDoc,
|
"\n fragment NewsListItem on NewsPage {\n __typename\n id\n slug\n title\n firstPublishedAt\n excerpt\n featuredImage {\n ...Image\n }\n }\n": typeof types.NewsListItemFragmentDoc,
|
||||||
"\n fragment News on NewsPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n firstPublishedAt\n excerpt\n lead\n featuredImage {\n ...Image\n }\n body {\n ...Blocks\n }\n }\n": typeof types.NewsFragmentDoc,
|
"\n fragment News on NewsPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n firstPublishedAt\n excerpt\n lead\n featuredImage {\n ...Image\n }\n body {\n ...Blocks\n }\n }\n": typeof types.NewsFragmentDoc,
|
||||||
"\n fragment NewsIndex on NewsIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n lead\n }\n": typeof types.NewsIndexFragmentDoc,
|
"\n fragment NewsIndex on NewsIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n lead\n }\n": typeof types.NewsIndexFragmentDoc,
|
||||||
@@ -133,10 +134,11 @@ const documents: Documents = {
|
|||||||
"\n fragment EventCategory on EventCategory {\n __typename\n name\n slug\n pig\n showInFilters\n }\n": types.EventCategoryFragmentDoc,
|
"\n fragment EventCategory on EventCategory {\n __typename\n name\n slug\n pig\n showInFilters\n }\n": types.EventCategoryFragmentDoc,
|
||||||
"\n fragment EventOrganizer on EventOrganizer {\n __typename\n id\n name\n slug\n externalUrl\n association {\n ... on AssociationPage {\n url\n }\n }\n }\n": types.EventOrganizerFragmentDoc,
|
"\n fragment EventOrganizer on EventOrganizer {\n __typename\n id\n name\n slug\n externalUrl\n association {\n ... on AssociationPage {\n url\n }\n }\n }\n": types.EventOrganizerFragmentDoc,
|
||||||
"\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n": types.EventListItemFragmentDoc,
|
"\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n": types.EventListItemFragmentDoc,
|
||||||
|
"\n fragment EventOverviewItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": types.EventOverviewItemFragmentDoc,
|
||||||
"\n fragment Event on EventPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n subtitle\n lead\n body {\n ...OneLevelOfBlocks\n }\n featuredImage {\n ...Image\n }\n pig\n facebookUrl\n ticketUrl\n free\n priceRegular\n priceMember\n priceStudent\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": types.EventFragmentDoc,
|
"\n fragment Event on EventPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n subtitle\n lead\n body {\n ...OneLevelOfBlocks\n }\n featuredImage {\n ...Image\n }\n pig\n facebookUrl\n ticketUrl\n free\n priceRegular\n priceMember\n priceStudent\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n": types.EventFragmentDoc,
|
||||||
"\n fragment EventIndex on EventIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n }\n": types.EventIndexFragmentDoc,
|
"\n fragment EventIndex on EventIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n }\n": types.EventIndexFragmentDoc,
|
||||||
"\n query eventIndexMetadata {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n }\n": types.EventIndexMetadataDocument,
|
"\n query eventIndexMetadata {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n }\n": types.EventIndexMetadataDocument,
|
||||||
"\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...Event\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n": types.FutureEventsDocument,
|
"\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...EventOverviewItem\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n": types.FutureEventsDocument,
|
||||||
"\n fragment NewsListItem on NewsPage {\n __typename\n id\n slug\n title\n firstPublishedAt\n excerpt\n featuredImage {\n ...Image\n }\n }\n": types.NewsListItemFragmentDoc,
|
"\n fragment NewsListItem on NewsPage {\n __typename\n id\n slug\n title\n firstPublishedAt\n excerpt\n featuredImage {\n ...Image\n }\n }\n": types.NewsListItemFragmentDoc,
|
||||||
"\n fragment News on NewsPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n firstPublishedAt\n excerpt\n lead\n featuredImage {\n ...Image\n }\n body {\n ...Blocks\n }\n }\n": types.NewsFragmentDoc,
|
"\n fragment News on NewsPage {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n firstPublishedAt\n excerpt\n lead\n featuredImage {\n ...Image\n }\n body {\n ...Blocks\n }\n }\n": types.NewsFragmentDoc,
|
||||||
"\n fragment NewsIndex on NewsIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n lead\n }\n": types.NewsIndexFragmentDoc,
|
"\n fragment NewsIndex on NewsIndex {\n __typename\n id\n slug\n seoTitle\n searchDescription\n title\n lead\n }\n": types.NewsIndexFragmentDoc,
|
||||||
@@ -370,6 +372,10 @@ export function graphql(source: "\n fragment EventOrganizer on EventOrganizer {
|
|||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n"): (typeof documents)["\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n"];
|
export function graphql(source: "\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n"): (typeof documents)["\n fragment EventListItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n }\n }\n }\n"];
|
||||||
|
/**
|
||||||
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
|
*/
|
||||||
|
export function graphql(source: "\n fragment EventOverviewItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n"): (typeof documents)["\n fragment EventOverviewItem on EventPage {\n __typename\n id\n slug\n title\n subtitle\n featuredImage {\n ...Image\n }\n categories {\n ... on EventCategory {\n ...EventCategory\n }\n }\n occurrences(limit: 5000) {\n ... on EventOccurrence {\n __typename\n id\n start\n end\n venue {\n __typename\n id\n slug\n title\n preposition\n url\n }\n venueCustom\n }\n }\n organizers {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n }\n"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
@@ -385,7 +391,7 @@ export function graphql(source: "\n query eventIndexMetadata {\n index: even
|
|||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...Event\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n"): (typeof documents)["\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...Event\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n"];
|
export function graphql(source: "\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...EventOverviewItem\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n"): (typeof documents)["\n query futureEvents {\n index: eventIndex {\n ... on EventIndex {\n ...EventIndex\n }\n }\n events: eventIndex {\n ... on EventIndex {\n futureEvents {\n ... on EventPage {\n ...EventOverviewItem\n }\n }\n }\n }\n eventCategories: eventCategories(limit: 5000) {\n ... on EventCategory {\n ...EventCategory\n }\n }\n eventOrganizers: eventOrganizers(limit: 5000) {\n ... on EventOrganizer {\n ...EventOrganizer\n }\n }\n venues: pages(contentType: \"venues.VenuePage\") {\n ... on VenuePage {\n id\n title\n slug\n preposition\n }\n }\n }\n"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+43
-2
@@ -14,6 +14,7 @@ import {
|
|||||||
type EventFragment,
|
type EventFragment,
|
||||||
type EventListItemFragment,
|
type EventListItemFragment,
|
||||||
type EventOrganizerFragment,
|
type EventOrganizerFragment,
|
||||||
|
type EventOverviewItemFragment,
|
||||||
} from "@/gql/graphql";
|
} from "@/gql/graphql";
|
||||||
import { PIG_NAMES, randomElement } from "@/lib/common";
|
import { PIG_NAMES, randomElement } from "@/lib/common";
|
||||||
|
|
||||||
@@ -21,7 +22,7 @@ export type EventOccurrence = EventFragment["occurrences"][number];
|
|||||||
export type EventListItemOccurrence = EventListItemFragment["occurrences"][number];
|
export type EventListItemOccurrence = EventListItemFragment["occurrences"][number];
|
||||||
export type EventCategory = EventCategoryFragment;
|
export type EventCategory = EventCategoryFragment;
|
||||||
export type EventOrganizer = EventOrganizerFragment;
|
export type EventOrganizer = EventOrganizerFragment;
|
||||||
export type { EventFragment, EventListItemFragment };
|
export type { EventFragment, EventListItemFragment, EventOverviewItemFragment };
|
||||||
|
|
||||||
type EventListable = {
|
type EventListable = {
|
||||||
occurrences: ReadonlyArray<{ id: string | null; start: string; end: string | null }>;
|
occurrences: ReadonlyArray<{ id: string | null; start: string; end: string | null }>;
|
||||||
@@ -77,6 +78,46 @@ const EventListItemFragmentDefinition = graphql(`
|
|||||||
}
|
}
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
const EventOverviewItemFragmentDefinition = graphql(`
|
||||||
|
fragment EventOverviewItem on EventPage {
|
||||||
|
__typename
|
||||||
|
id
|
||||||
|
slug
|
||||||
|
title
|
||||||
|
subtitle
|
||||||
|
featuredImage {
|
||||||
|
...Image
|
||||||
|
}
|
||||||
|
categories {
|
||||||
|
... on EventCategory {
|
||||||
|
...EventCategory
|
||||||
|
}
|
||||||
|
}
|
||||||
|
occurrences(limit: 5000) {
|
||||||
|
... on EventOccurrence {
|
||||||
|
__typename
|
||||||
|
id
|
||||||
|
start
|
||||||
|
end
|
||||||
|
venue {
|
||||||
|
__typename
|
||||||
|
id
|
||||||
|
slug
|
||||||
|
title
|
||||||
|
preposition
|
||||||
|
url
|
||||||
|
}
|
||||||
|
venueCustom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
organizers {
|
||||||
|
... on EventOrganizer {
|
||||||
|
...EventOrganizer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
|
||||||
const EventFragmentDefinition = graphql(`
|
const EventFragmentDefinition = graphql(`
|
||||||
fragment Event on EventPage {
|
fragment Event on EventPage {
|
||||||
__typename
|
__typename
|
||||||
@@ -162,7 +203,7 @@ export const eventsOverviewQuery = graphql(`
|
|||||||
... on EventIndex {
|
... on EventIndex {
|
||||||
futureEvents {
|
futureEvents {
|
||||||
... on EventPage {
|
... on EventPage {
|
||||||
...Event
|
...EventOverviewItem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user