import Breadcrumbs from "@/components/ui/breadcrumbs"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import ApiServiceCredentialsModal from "@/feature/ApiServiceCredentialsModal"; import { useApiServices } from "@/store/admin"; import { useCallback, type FC } from "react"; import { useForm } from "react-hook-form"; import { Link } from "react-router"; interface FormData { name: string; description: string; redirectUris: string; scopes: string; grantTypes: string; enabled: boolean; } const ApiServiceCreatePage: FC = () => { const { register, handleSubmit, formState: { errors }, } = useForm({ defaultValues: { enabled: true, scopes: "openid", }, }); const createApiService = useApiServices((state) => state.create); const credentials = useApiServices((state) => state.createdCredentials); const onSubmit = useCallback( (data: FormData) => { console.log("Form submitted:", data); createApiService({ name: data.name, description: data.description ?? "", redirect_uris: data.redirectUris.trim().split("\n"), scopes: data.scopes.trim().split(" "), grant_types: data.grantTypes ? data.grantTypes.trim().split(" ") : ["authorization_code"], is_active: data.enabled, }); }, [createApiService], ); return (
{credentials !== null && }
{/* Service Information */}

Service Information

Name

{errors.name && ( {errors.name.message} )}

Description

{errors.description && ( {errors.description.message} )}
{/* OpenID Connect */}

OpenID Connect

Redirect URIs

{errors.redirectUris && ( {errors.redirectUris.message} )}

Scopes

{errors.scopes && ( {errors.scopes.message} )}

Grant Types

{/* Final Section */}

Final Customization & Submit

); }; export default ApiServiceCreatePage;