nanoppa's picture
Upload 100 files
10c8635 verified
raw
history blame
2.96 kB
import React, { useState } from 'react';
import { useLocation } from 'wouter';
import { Search } from 'lucide-react';
import { ThemeToggle } from '@/components/ThemeToggle';
import { Logo } from '@/components/Logo';
export function Home() {
const [query, setQuery] = useState('');
const [, setLocation] = useLocation();
const handleSearch = (e: React.FormEvent) => {
e.preventDefault();
if (query.trim()) {
setLocation(`/search?q=${encodeURIComponent(query.trim())}`);
}
};
return (
<div className="min-h-screen flex flex-col items-center justify-center bg-background">
<ThemeToggle />
<div className="w-full max-w-3xl px-4 animate-fade-in">
<div className="flex flex-col items-center mb-8">
<Logo className="mb-6" />
<h1 className="text-2xl lg:text-4xl font-bold text-center bg-clip-text text-transparent bg-gradient-to-r from-gray-900 to-gray-600 dark:from-white dark:to-gray-200">
What do you want to know?
</h1>
</div>
<form onSubmit={handleSearch} className="w-full">
<div className="relative group">
<input
type="text"
value={query}
onChange={(e) => setQuery(e.target.value)}
placeholder="Ask anything..."
className="w-full px-6 py-4 text-lg rounded-full border border-gray-200
focus:border-google-blue focus:ring-4 focus:ring-google-blue/20 outline-none
transition-all duration-300 shadow-sm
group-hover:shadow-lg group-hover:border-gray-300
dark:bg-gray-800 dark:border-gray-700 dark:text-white
dark:focus:border-google-blue dark:group-hover:border-gray-600
pr-14 truncate"
style={{ fontFamily: 'Inter, sans-serif' }}
autoFocus
/>
<button
type="submit"
disabled={!query.trim()}
className="absolute right-4 top-1/2 -translate-y-1/2 p-2 rounded-full
hover:bg-gray-100 dark:hover:bg-gray-700 transition-all duration-300
hover:scale-110 active:scale-95 disabled:opacity-50 disabled:hover:scale-100
disabled:hover:bg-transparent z-10 bg-background dark:bg-gray-800"
>
<Search className="w-5 h-5 text-gray-500 dark:text-gray-400" />
</button>
</div>
</form>
<div className="mt-8 text-center text-sm text-gray-500 dark:text-gray-400 animate-fade-in space-y-1">
<div>Powered by Gemini 2.0</div>
<div>
Created by <a href="http://x.com/ammaar" target="_blank" rel="noopener noreferrer" className="hover:text-gray-800 dark:hover:text-gray-300 transition-colors">@ammaar</a>
</div>
</div>
</div>
</div>
);
}