Skip to content

Commit 2b18bd1

Browse files
authored
Merge pull request #922 from HiEventsDev/develop
Fix: Homepage designer preview (#921)
2 parents 6044287 + 641e944 commit 2b18bd1

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import {LoaderFunctionArgs} from "react-router";
2+
import {getQueryClient} from "../utilites/ssrQueryClient.ts";
3+
import {getOrganizerPublicQuery} from "../queries/useGetOrganizerPublic.ts";
4+
import {getOrganizerPublicEventsQuery} from "../queries/useGetOrganizerEventsPublic.ts";
5+
6+
/**
7+
* Loader for the organizer preview page - does NOT redirect based on slug
8+
* This is used by the iframe preview in the homepage designer
9+
*/
10+
export const organizerPreviewRouteLoader = async ({params}: LoaderFunctionArgs) => {
11+
const {organizerId} = params;
12+
13+
if (!organizerId) {
14+
throw new Error('Organizer ID is required');
15+
}
16+
17+
try {
18+
const organizer = await getQueryClient().fetchQuery(getOrganizerPublicQuery(organizerId));
19+
20+
const eventsData = await getQueryClient().fetchQuery(
21+
getOrganizerPublicEventsQuery(organizerId, {
22+
pageNumber: 1,
23+
perPage: 30,
24+
sortBy: 'start_date',
25+
sortDirection: 'asc',
26+
additionalParams: {
27+
eventsStatus: 'upcoming',
28+
},
29+
filterFields: {}
30+
})
31+
);
32+
33+
return {
34+
organizer,
35+
eventsData,
36+
isPastEvents: false
37+
};
38+
} catch (error: any) {
39+
if (error?.response?.status === 404) {
40+
return {organizer: null, eventsData: null, isPastEvents: false};
41+
}
42+
throw error;
43+
}
44+
}

frontend/src/router.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {useEffect, useState} from "react";
44
import {useGetMe} from "./queries/useGetMe.ts";
55
import {publicEventRouteLoader} from "./routeLoaders/publicEventRouteLoader.ts";
66
import {publicOrganizerRouteLoader} from "./routeLoaders/publicOrganizerRouteLoader.ts";
7+
import {organizerPreviewRouteLoader} from "./routeLoaders/organizerPreviewRouteLoader.ts";
78

89
const Root = () => {
910
const [redirectPath, setRedirectPath] = useState<string | null>(null);
@@ -455,7 +456,7 @@ export const router: RouteObject[] = [
455456
},
456457
{
457458
path: "/organizer/:organizerId/preview",
458-
loader: publicOrganizerRouteLoader,
459+
loader: organizerPreviewRouteLoader,
459460
async lazy() {
460461
const OrganizerHomepagePreview = await import("./components/layouts/OrganizerHomepagePreview");
461462
return {Component: OrganizerHomepagePreview.default};

0 commit comments

Comments
 (0)