feat: implement market page with QueryProvider and dynamic listings

- wrap root layout with QueryProvider for React Query
- replace market UnderConstruction placeholder with MarketClient and real data fetching
- implement search, pagination, and sort via search params using getActiveListings
- add necessary client components and queries
- update dependencies (e.g., prisma, pkg-types)
This commit is contained in:
Evandro Fonseca Junior committed 2025-11-05 01:58:03 -03:00
1 parent 55eebde0ba
commit ab37b477df
106 files changed
+15261 -301

No files matched your search

+17 -1
View File
@@ -1,7 +1,7 @@
"use client";
import { Menu } from "lucide-react";
import { useState } from "react";
import { useState, useEffect } from "react";
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
import { Button } from "@/components/ui/button";
import { Separator } from "@/components/ui/separator";
@@ -16,8 +16,24 @@ interface MobileMenuProps {
export function MobileMenu({ links }: MobileMenuProps) {
const [open, setOpen] = useState(false);
const [mounted, setMounted] = useState(false);
const t = useTranslations("header");
// Evitar hydration mismatch com Radix UI
useEffect(() => {
setMounted(true);
}, []);
// Renderizar placeholder durante SSR para evitar mismatch
if (!mounted) {
return (
<Button variant="outline" size="icon" className="md:hidden" disabled>
<Menu className="h-[1.2rem] w-[1.2rem]" />
<span className="sr-only">{t("menu")}</span>
</Button>
);
}
return (
<Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild>