feat(ui): mağazalar sayfası, ürün kataloğu ve ürün tipi detayında ürünler

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-06 11:48:04 +03:00
parent f0b570284e
commit d52f41ab0c
14 changed files with 1228 additions and 8 deletions
@@ -78,9 +78,12 @@ function Stat({ label, children }: { label: string; children: React.ReactNode })
export function ProductDetailView({
data,
categories,
products,
}: {
data: ProductTypeDetail;
categories: StockOption[];
/** Marka/paket bölümü (Faz 12). */
products?: React.ReactNode;
}) {
const [pending, setPending] = useState<Pending>(null);
const close = () => setPending(null);
@@ -281,6 +284,8 @@ export function ProductDetailView({
</CardContent>
</Card>
{products}
<section className="flex flex-col gap-2" aria-labelledby="stock-movements-title">
<h2 id="stock-movements-title" className="text-base font-medium">
{t.detail.movements}
@@ -9,6 +9,7 @@ import {
FolderTree,
Plus,
Search,
Tags,
} from "lucide-react";
import Link from "next/link";
import { useRouter } from "next/navigation";
@@ -164,6 +165,12 @@ export function StockView({ data, options }: { data: Data; options: StockOption[
return (
<div className="flex flex-col gap-4">
<div className="flex flex-wrap justify-end gap-2">
<Button variant="ghost" size="sm" asChild>
<Link href="/stok/urunler">
<Tags />
{tr.products.catalogLink}
</Link>
</Button>
<Button variant="ghost" size="sm" asChild>
<Link href="/stok/analiz">
<ChartColumn />