From 9a51764c0df670a1508c2adee4fbfe51b024377f Mon Sep 17 00:00:00 2001
From: Stefano Pigozzi
Date: Wed, 27 Jul 2022 01:36:33 +0200
Subject: [PATCH] Redirect to the event page after creation
---
components/landing/actions/events.tsx | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/components/landing/actions/events.tsx b/components/landing/actions/events.tsx
index 9ac2c6d..78193a8 100644
--- a/components/landing/actions/events.tsx
+++ b/components/landing/actions/events.tsx
@@ -4,11 +4,11 @@ import classNames from "classnames"
import { useTranslation } from "next-i18next"
import Link from "next/link"
import { useRouter } from "next/router"
-import { useState } from "react"
+import { useEffect, useState } from "react"
import { default as useSWR } from "swr"
import { useAxiosRequest } from "../../auth/requests"
import { ErrorBlock } from "../../generic/errors/renderers"
-import { promiseMultiplexer } from "../../generic/loading/promise"
+import { promiseMultiplexer, UsePromiseStatus } from "../../generic/loading/promise"
import { swrMultiplexer } from "../../generic/loading/swr"
import { LoadingInline } from "../../generic/loading/renderers"
import { FestaIcon } from "../../generic/renderers/fontawesome"
@@ -73,6 +73,16 @@ const LandingActionEventsFormCreate = () => {
const createHook = useAxiosRequest>({ method: "POST", url: "/api/events/" })
+ useEffect(
+ () => {
+ if (createHook.status === UsePromiseStatus.FULFILLED) {
+ console.debug(`[LandingActionEventsFormCreate] Moving you to /events/${createHook.data!.slug}`)
+ router.push(`/events/${createHook.data!.slug}`)
+ }
+ },
+ [router]
+ )
+
return promiseMultiplexer({
hook: createHook,
ready: ({ run }) => (
@@ -109,13 +119,11 @@ const LandingActionEventsFormCreate = () => {
),
- fulfilled: ({ result }) => {
- return (
-
-
-
- )
- },
+ fulfilled: ({ result }) => (
+
+
+
+ )
})
}