From a0d506fb76a3997697beb16e48e23e7681841ffd Mon Sep 17 00:00:00 2001 From: LandaMm Date: Fri, 13 Jun 2025 21:45:53 +0200 Subject: [PATCH] feat: navigate to list page after successful create --- web/src/pages/Admin/ApiServices/Create/index.tsx | 13 +++++++++---- web/src/pages/Admin/Users/Create/index.tsx | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/web/src/pages/Admin/ApiServices/Create/index.tsx b/web/src/pages/Admin/ApiServices/Create/index.tsx index dcf0824..897a386 100644 --- a/web/src/pages/Admin/ApiServices/Create/index.tsx +++ b/web/src/pages/Admin/ApiServices/Create/index.tsx @@ -5,7 +5,7 @@ import ApiServiceCredentialsModal from "@/feature/ApiServiceCredentialsModal"; import { useApiServices } from "@/store/admin/apiServices"; import { useCallback, type FC } from "react"; import { useForm } from "react-hook-form"; -import { Link } from "react-router"; +import { Link, useNavigate } from "react-router"; interface FormData { name: string; @@ -32,10 +32,12 @@ const ApiServiceCreatePage: FC = () => { const credentials = useApiServices((state) => state.createdCredentials); + const navigate = useNavigate(); + const onSubmit = useCallback( - (data: FormData) => { + async (data: FormData) => { console.log("Form submitted:", data); - createApiService({ + const success = await createApiService({ name: data.name, description: data.description ?? "", redirect_uris: data.redirectUris.trim().split("\n"), @@ -45,8 +47,11 @@ const ApiServiceCreatePage: FC = () => { : ["authorization_code"], is_active: data.enabled, }); + if (success) { + navigate("/admin/api-services"); + } }, - [createApiService], + [createApiService, navigate], ); return ( diff --git a/web/src/pages/Admin/Users/Create/index.tsx b/web/src/pages/Admin/Users/Create/index.tsx index d9d496c..4bbda4b 100644 --- a/web/src/pages/Admin/Users/Create/index.tsx +++ b/web/src/pages/Admin/Users/Create/index.tsx @@ -4,7 +4,7 @@ import { Input } from "@/components/ui/input"; import { useUsers } from "@/store/admin/users"; import { useCallback, type FC } from "react"; import { useForm } from "react-hook-form"; -import { Link } from "react-router"; +import { Link, useNavigate } from "react-router"; interface FormData { fullName: string; @@ -24,17 +24,22 @@ const AdminCreateUserPage: FC = () => { const createUser = useUsers((state) => state.createUser); + const navigate = useNavigate(); + const onSubmit = useCallback( - (data: FormData) => { + async (data: FormData) => { console.log("Form submitted:", data); - createUser({ + const success = await createUser({ email: data.email, full_name: data.fullName, password: data.password, is_admin: data.isAdmin, }); + if (success) { + navigate("/admin/users"); + } }, - [createUser], + [createUser, navigate], ); return (