- Create (public) route group with landing page (hero, featured listings, district links, stats, CTA) - Create search page with filter sidebar, list/map/split view modes, URL-synced filters, pagination - Build ListingMap component with CSS-based marker visualization and popup details - Build FilterBar with transaction type, property type, city, price range, area, bedrooms filters - Build PropertyCard and SearchResults components with responsive grid layout - Update middleware to allow public access to / and /search routes - Move dashboard home to /dashboard to avoid route conflict - All content in Vietnamese, mobile responsive Co-Authored-By: Paperclip <noreply@paperclip.ing>
55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import Link from 'next/link';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
|
|
|
export default function DashboardPage() {
|
|
return (
|
|
<div className="space-y-8">
|
|
<div>
|
|
<h1 className="text-3xl font-bold">Bảng điều khiển</h1>
|
|
<p className="mt-2 text-muted-foreground">
|
|
Quản lý tin đăng bất động sản của bạn
|
|
</p>
|
|
</div>
|
|
|
|
<div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Đăng tin mới</CardTitle>
|
|
<CardDescription>Tạo tin đăng bán hoặc cho thuê bất động sản</CardDescription>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<Link href="/listings/new">
|
|
<Button className="w-full">Đăng tin ngay</Button>
|
|
</Link>
|
|
</CardContent>
|
|
</Card>
|
|
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Tin đăng của tôi</CardTitle>
|
|
<CardDescription>Quản lý các tin đăng đã tạo</CardDescription>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<Link href="/listings">
|
|
<Button variant="outline" className="w-full">Xem danh sách</Button>
|
|
</Link>
|
|
</CardContent>
|
|
</Card>
|
|
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Tìm kiếm</CardTitle>
|
|
<CardDescription>Tìm bất động sản phù hợp nhu cầu</CardDescription>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<Link href="/search">
|
|
<Button variant="outline" className="w-full">Tìm kiếm</Button>
|
|
</Link>
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|