diff --git a/frontend/src/App.js b/frontend/src/App.js
index 20a9c5560..3d0c40a18 100755
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -1,6 +1,6 @@
import React, { useState, useEffect, Suspense } from 'react'
-import { ConnectedRouter, push } from 'connected-react-router'
+import { ConnectedRouter } from 'connected-react-router'
import { useDispatch, useSelector } from 'react-redux'
import { ApolloProvider } from '@apollo/client'
@@ -38,21 +38,13 @@ export default ({ history, location }) => {
if (isSessionExpired) {
setLoading(true)
console.log('renewing session now')
- dispatch(AuthActions.renewSession())
- .then(() => {
- setLoading(false)
- })
- .catch(err => {
- console.log(err)
- dispatch(SnackbarActions.error('Please, log in again'))
- })
- .finally(() => setLoading(false))
- } else {
- setLoading(false)
+ dispatch(AuthActions.renewSession()).catch(err => {
+ console.log(err)
+ dispatch(SnackbarActions.error('Please, log in again'))
+ })
}
- } else {
- setLoading(false)
}
+ setLoading(false)
}, [dispatch, isAuthenticated, isSessionExpired])
return (
diff --git a/frontend/src/components/events/EventHeroImage/index.js b/frontend/src/components/events/EventHeroImage/index.js
index 00174d338..6a1876375 100644
--- a/frontend/src/components/events/EventHeroImage/index.js
+++ b/frontend/src/components/events/EventHeroImage/index.js
@@ -110,37 +110,6 @@ export default ({
- {/*
-
-
-
- {event?._eventTimeFormatted}
-
-
- {title ?? event?.name}
-
-
- {subheading}
-
-
-
- {event?._eventLocationFormatted}
-
-
-
- */}
{
const event = useSelector(OrganiserSelectors.event)
const [organizations] = useAllOrganizations()
- const dispatch = useDispatch()
+ const { getQuery, setQuery } = useQuery()
+ const isPreviewOpen = getQuery('preview') === 'true'
+
+ // Open the preview modal by setting the preview mode in URL
+ const handlePreviewOpen = () => setQuery('preview', 'true')
+
+ // Close the preview modal by removing the preview mode from URL
+ const handlePreviewClose = () => setQuery('preview', 'false')
return (
@@ -382,12 +390,7 @@ export default () => {
))}
-
+
)
}
diff --git a/frontend/src/pages/_events/EventPageCustomizationPreviewModal.js b/frontend/src/pages/_events/EventPageCustomizationPreviewModal.js
new file mode 100644
index 000000000..b4e9521bc
--- /dev/null
+++ b/frontend/src/pages/_events/EventPageCustomizationPreviewModal.js
@@ -0,0 +1,36 @@
+import React from 'react'
+import {
+ Dialog,
+ DialogTitle,
+ DialogContent,
+ DialogActions,
+} from '@material-ui/core'
+import Button from 'components/generic/Button'
+
+export default ({ open, onClose, eventSlug }) => {
+ return (
+
+ )
+}
diff --git a/frontend/src/pages/_events/slug/default/EventButtons/index.js b/frontend/src/pages/_events/slug/default/EventButtons/index.js
index 551024d4f..b84ac121f 100644
--- a/frontend/src/pages/_events/slug/default/EventButtons/index.js
+++ b/frontend/src/pages/_events/slug/default/EventButtons/index.js
@@ -50,7 +50,9 @@ export default ({ event, registration }) => {
dispatch(
- push(`/dashboard/event/${event.slug}`),
+ push(
+ `/dashboard/event/${event.slug}`,
+ ),
)
}
variant="applicationsClosed"
diff --git a/frontend/src/pages/_events/slug/default/EventTimeline/index.js b/frontend/src/pages/_events/slug/default/EventTimeline/index.js
index 7502bd81e..cf1066912 100644
--- a/frontend/src/pages/_events/slug/default/EventTimeline/index.js
+++ b/frontend/src/pages/_events/slug/default/EventTimeline/index.js
@@ -10,7 +10,6 @@ import {
} from '@material-ui/core'
import { sortBy } from 'lodash-es'
import moment from 'moment'
-import MiscUtils from 'utils/misc'
import TimelineDot from 'components/generic/TimelineDot'
import StepConnector from '@material-ui/core/StepConnector'
@@ -105,29 +104,29 @@ const EventTimeline = ({ event, textColor, accentColor = undefined }) => {
realItems.length > 0
? realItems
: [
- {
- date: moment(event.registrationStartTime).format(
- dateString,
- ),
- dateValue: moment(event.registrationStartTime).unix(),
- completed: moment(
- event.registrationStartTime,
- ).isBefore(),
- title: 'Application period begins',
- active: true,
- },
- {
- date: moment(event.registrationEndTime).format(
- dateString,
- ),
- dateValue: moment(event.registrationEndTime).unix(),
- completed: moment(
- event.registrationEndTime,
- ).isBefore(),
- title: 'Application period ends',
- active: true,
- },
- ]
+ {
+ date: moment(event.registrationStartTime).format(
+ dateString,
+ ),
+ dateValue: moment(event.registrationStartTime).unix(),
+ completed: moment(
+ event.registrationStartTime,
+ ).isBefore(),
+ title: 'Application period begins',
+ active: true,
+ },
+ {
+ date: moment(event.registrationEndTime).format(
+ dateString,
+ ),
+ dateValue: moment(event.registrationEndTime).unix(),
+ completed: moment(
+ event.registrationEndTime,
+ ).isBefore(),
+ title: 'Application period ends',
+ active: true,
+ },
+ ]
if (realItems.length < 1) {
if (
diff --git a/frontend/src/pages/_events/slug/default/index.js b/frontend/src/pages/_events/slug/default/index.js
index e4f7eed0d..00ee5651e 100644
--- a/frontend/src/pages/_events/slug/default/index.js
+++ b/frontend/src/pages/_events/slug/default/index.js
@@ -7,7 +7,6 @@ import EventHeroImage from 'components/events/EventHeroImage'
import Markdown from 'components/generic/Markdown'
import AnalyticsService from 'services/analytics'
-
import EventTimeline from './EventTimeline'
import BannerCarousel from 'components/generic/BannerCarousel'
import GradientBox from 'components/generic/GradientBox'
@@ -67,6 +66,7 @@ const useStyles = makeStyles({
})
export default () => {
+ // isPreview determines if the page is being previewed in the Preview modal
const dispatch = useDispatch()
const { slug, event, registration } = useContext(EventDetailContext)
const classes = useStyles(event.theme)
@@ -177,7 +177,10 @@ export default () => {
-
+
Event Timeline
diff --git a/frontend/src/pages/_events/slug/index.js b/frontend/src/pages/_events/slug/index.js
index 23e2cd08e..14f76b824 100644
--- a/frontend/src/pages/_events/slug/index.js
+++ b/frontend/src/pages/_events/slug/index.js
@@ -1,4 +1,4 @@
-import React, { useContext } from 'react'
+import React, { useContext, useEffect, useState } from 'react'
import { Route, Switch, Redirect } from 'react-router-dom'
import { AnimatePresence } from 'framer-motion'
@@ -16,43 +16,42 @@ import EventDetailContext, { EventDetailProvider } from './context'
const EventDetailRouter = () => {
const match = useRouteMatch()
const location = useLocation()
- const { eventLoading, eventError, isRegistrationOpen } =
- useContext(EventDetailContext)
- // TODO FIX errortext and desc to be from eventErro
+ const [isPreview, setIsPreview] = useState(false)
+ const { eventLoading, eventError, isRegistrationOpen } = useContext(EventDetailContext)
+
+ // Monitor changes to the preview query parameter and update state accordingly
+ useEffect(() => {
+ const searchParams = new URLSearchParams(location.search)
+ setIsPreview(searchParams.get('preview') === 'true')
+ }, [location.search])
+
+ // Conditional rendering for preview or non-preview mode
return (
}
- footer={() => }
- render={() => {
- return (
-
-
-
- {isRegistrationOpen && (
-
- )}
-
-
-
-
- )
- }}
+ errorText="Oops, something went wrong"
+ errorDesc="Please refresh the page to try again."
+ header={!isPreview ? () => : undefined}
+ footer={!isPreview ? () => : undefined}
+ render={() => (
+
+
+ }
+ />
+ {isRegistrationOpen && !isPreview &&
+
+ }
+ {!isPreview &&
+
+ }
+
+
+
+ )}
/>
)
}
@@ -63,4 +62,4 @@ export default () => {
)
-}
+}
\ No newline at end of file