Spaces:
Sleeping
Sleeping
'use client' | |
import { useState } from 'react' | |
export default function Home() { | |
// Keep track of the classification result and the model loading status. | |
const [result, setResult] = useState(null); | |
const [ready, setReady] = useState(null); | |
const classify = async (text) => { | |
if (!text) return; | |
if (ready === null) setReady(false); | |
// Make a request to the /classify route on the server. | |
const result = await fetch(`/classify?text=${encodeURIComponent(text)}`); | |
// If this is the first time we've made a request, set the ready flag. | |
if (!ready) setReady(true); | |
const json = await result.json(); | |
setResult(json); | |
}; | |
return ( | |
<main className="flex min-h-screen flex-col items-center justify-center p-12"> | |
<h1 className="text-5xl font-bold mb-2 text-center">Transformers.js</h1> | |
<h2 className="text-2xl mb-4 text-center">Next.js template (server-side)</h2> | |
<input | |
type="text" | |
className="w-full max-w-xs p-2 border border-gray-300 rounded mb-4" | |
placeholder="Enter text here" | |
onInput={e => { | |
classify(e.target.value); | |
}} | |
/> | |
{ready !== null && ( | |
<pre className="bg-gray-100 p-2 rounded"> | |
{ | |
(!ready || !result) ? 'Loading...' : JSON.stringify(result, null, 2)} | |
</pre> | |
)} | |
</main> | |
) | |
} | |