Fix product stock, booking actions, settings, reservation UX, nav and category filter

This commit is contained in:
belviskhoremk
2026-05-20 23:56:43 +00:00
parent a89793a059
commit affff1c502
12 changed files with 137 additions and 102 deletions

View File

@@ -1,18 +1,25 @@
"use client";
import { useState, useEffect } from "react";
import { Suspense, useState, useEffect } from "react";
import { useLanguage } from "@/contexts/LanguageContext";
import { useSearchParams, useRouter } from "next/navigation";
import { categories } from "@/data/products";
import type { Product } from "@/data/products";
import { listProducts } from "@/lib/api/products";
import ProductCard from "@/components/ProductCard";
export default function Shop() {
function ShopContent() {
const { t } = useLanguage();
const [selectedCategory, setSelectedCategory] = useState("all");
const searchParams = useSearchParams();
const router = useRouter();
const selectedCategory = searchParams.get("category") || "all";
const [products, setProducts] = useState<Product[]>([]);
const [loading, setLoading] = useState(true);
const setCategory = (cat: string) => {
router.push(cat === "all" ? "/boutique" : `/boutique?category=${cat}`);
};
useEffect(() => {
setLoading(true);
listProducts({
@@ -31,7 +38,7 @@ export default function Shop() {
<div className="flex flex-wrap justify-center gap-2 mb-10">
<button
onClick={() => setSelectedCategory("all")}
onClick={() => setCategory("all")}
className={`px-4 py-2 rounded-full text-sm transition-colors ${
selectedCategory === "all"
? "bg-primary text-primary-foreground"
@@ -43,7 +50,7 @@ export default function Shop() {
{categories.map((cat) => (
<button
key={cat.id}
onClick={() => setSelectedCategory(cat.id)}
onClick={() => setCategory(cat.id)}
className={`px-4 py-2 rounded-full text-sm transition-colors cursor-pointer ${
selectedCategory === cat.id
? "bg-primary text-primary-foreground"
@@ -74,3 +81,11 @@ export default function Shop() {
</div>
);
}
export default function Shop() {
return (
<Suspense>
<ShopContent />
</Suspense>
);
}