"use client"; import { useState } from "react"; import { useMount } from "react-use"; import { Options } from "redaxios"; import { ApiRoute } from "@/utils/type"; import { Endpoint } from "./endpoint"; import { Request } from "./request"; import { Response } from "./response"; import { useRequest } from "./hooks/useRequest"; export const EditorMain = ({ endpoint }: { endpoint: ApiRoute }) => { const [formattedEndpoint, setFormattedEndpoint] = useState( endpoint.path ); const [formattedParameters, setFormattedParameters] = useState( endpoint?.parameters ? { ...endpoint.parameters } : undefined ); const [formattedBody, setFormattedBody] = useState(); const { loading, submit, data } = useRequest( endpoint.method.toLocaleLowerCase() as | "post" | "put" | "patch" | "delete" | "get", formattedEndpoint, formattedParameters, formattedBody ); useMount(() => { if ( endpoint?.path && endpoint?.method === "GET" && !endpoint?.path?.includes("{") && !endpoint?.path?.includes("}") ) { submit(); } }); return (
{ setFormattedParameters({ ...formattedParameters, [k]: v, }); }} onBodyChange={(b: Options) => setFormattedBody(b)} >
); };