import { FormEvent, useState } from 'react'; import { Helmet } from 'react-helmet-async'; import { invoke } from '@tauri-apps/api/tauri'; import Editor from './components/Editor/Editor'; import { Input } from './components/Input'; import { Stacks } from './components/Stacks'; import { Button } from './components/Button'; import { Grid } from './components/Grid'; import { DropdownMenuRadio } from './components/Dropdown'; interface Response { url: string; method: string; body: string; status: string; elapsed: number; elapsed2: number; headers: Record; } function App() { const [responseBody, setResponseBody] = useState(null); const [url, setUrl] = useState('https://go-server.schier.dev/debug'); const [loading, setLoading] = useState(false); const [method, setMethod] = useState('get'); async function sendRequest(e: FormEvent) { e.preventDefault(); setLoading(true); const resp = (await invoke('send_request', { method, url })) as Response; console.log('RESP', resp); if (resp.body.includes('')) { resp.body = resp.body.replace(//gi, ``); } setLoading(false); setResponseBody(resp); } const contentType = responseBody?.headers['content-type']?.split(';')[0] ?? 'text/plain'; return ( <>
setUrl(e.currentTarget.value)} value={url} placeholder="Enter a URL..." /> {responseBody !== null && ( <>
{responseBody?.method.toUpperCase()}  •  {responseBody?.status}  •  {responseBody?.elapsed}ms  •  {responseBody?.elapsed2}ms