Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-13 10:15:42 +00:00
2 changed files with 56 additions and 151 deletions

View File

@@ -21,8 +21,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Ürünler",
items: [
title: "Ürünler", items: [
{ label: "Tümü", href: "/products" },
{ label: "Meyve", href: "/products?category=fruit" },
{ label: "Sebze", href: "/products?category=vegetable" },
@@ -30,8 +29,7 @@ export default function HomePage() {
],
},
{
title: "Şirket",
items: [
title: "Şirket", items: [
{ label: "Hakkında", href: "/about" },
{ label: "İletişim", href: "/contact" },
{ label: "Blog", href: "/blog" },
@@ -39,8 +37,7 @@ export default function HomePage() {
],
},
{
title: "Yardım",
items: [
title: "Yardım", items: [
{ label: "Sıkça Sorulan Sorular", href: "/faq" },
{ label: "Gizlilik Politikası", href: "/privacy" },
{ label: "Hizmet Şartları", href: "/terms" },
@@ -82,42 +79,26 @@ export default function HomePage() {
{ text: "Alışverişe Başla", href: "/products" },
{ text: "Üretici Ol", href: "/producer/signup" },
]}
background={{ variant: "circleGradient" }}
background={{ variant: "glowing-orb" }}
leftCarouselItems={[
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=fw1koq&_wi=1",
imageAlt: "Fresh fruits",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=fw1koq", imageAlt: "Fresh fruits"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=7gfbtw&_wi=1",
imageAlt: "Fresh vegetables",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=7gfbtw", imageAlt: "Fresh vegetables"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kwcrp3&_wi=1",
imageAlt: "Red apples",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kwcrp3", imageAlt: "Red apples"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gcbmcd&_wi=1",
imageAlt: "Breakfast products",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gcbmcd", imageAlt: "Breakfast products"},
]}
rightCarouselItems={[
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=n4rq0j&_wi=1",
imageAlt: "Fresh tomatoes",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=n4rq0j", imageAlt: "Fresh tomatoes"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oms64g&_wi=1",
imageAlt: "Dairy products",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=oms64g", imageAlt: "Dairy products"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=j5eapc&_wi=1",
imageAlt: "Organic honey",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=j5eapc", imageAlt: "Organic honey"},
{
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=3gn95g&_wi=1",
imageAlt: "Mixed nuts",
},
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=3gn95g", imageAlt: "Mixed nuts"},
]}
carouselPosition="right"
/>
@@ -130,32 +111,16 @@ export default function HomePage() {
features={[
{
id: 1,
title: "Meyve",
description: "Taze, mevsimsel meyveler doğrudan bahçeden",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=fw1koq&_wi=2",
imageAlt: "Meyve kategorisi",
},
title: "Meyve", description: "Taze, mevsimsel meyveler doğrudan bahçeden", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=fw1koq", imageAlt: "Meyve kategorisi"},
{
id: 2,
title: "Sebze",
description: "Organik ve kimyasız yetiştirilen sebzeler",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=7gfbtw&_wi=2",
imageAlt: "Sebze kategorisi",
},
title: "Sebze", description: "Organik ve kimyasız yetiştirilen sebzeler", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=7gfbtw", imageAlt: "Sebze kategorisi"},
{
id: 3,
title: "Kahvaltılık",
description: "Beslenme ürünleri ve sabah kahvaltıları",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gcbmcd&_wi=2",
imageAlt: "Kahvaltılık ürünleri",
},
title: "Kahvaltılık", description: "Beslenme ürünleri ve sabah kahvaltıları", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=gcbmcd", imageAlt: "Kahvaltılık ürünleri"},
{
id: 4,
title: "Kuruyemiş & Kuru Gıda",
description: "Sağlıklı atıştırmalıklar ve depo ürünleri",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=l6gpu9&_wi=1",
imageAlt: "Kuruyemiş kategorisi",
},
title: "Kuruyemiş & Kuru Gıda", description: "Sağlıklı atıştırmalıklar ve depo ürünleri", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=l6gpu9", imageAlt: "Kuruyemiş kategorisi"},
]}
textboxLayout="default"
useInvertedBackground={false}
@@ -169,29 +134,11 @@ export default function HomePage() {
description="Kaliteli ürünler sunmakta kararlı yerel üreticilerimizle tanışın"
members={[
{
id: "1",
name: "Ahmet Çiftçi Organik Sebzeler",
role: "Organik Çiftçi",
description: "20 yıllık deneyimle Ankara'da en taze sebzeleri yetiştiriyor",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hlxon1",
imageAlt: "Ahmet Çiftçi",
},
id: "1", name: "Ahmet Çiftçi Organik Sebzeler", role: "Organik Çiftçi", description: "20 yıllık deneyimle Ankara'da en taze sebzeleri yetiştiriyor", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=hlxon1", imageAlt: "Ahmet Çiftçi"},
{
id: "2",
name: "Zeynep Bereket Tarımı",
role: "Meyveci",
description: "Doğu Karadeniz'in en seçkin meyvelerini sunuyoruz",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=s45oyl&_wi=1",
imageAlt: "Zeynep Bereket",
},
id: "2", name: "Zeynep Bereket Tarımı", role: "Meyveci", description: "Doğu Karadeniz'in en seçkin meyvelerini sunuyoruz", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=s45oyl", imageAlt: "Zeynep Bereket"},
{
id: "3",
name: "Mehmet Süt Ürünleri",
role: "Süt Üreticisi",
description: "Geleneksel yöntemlerle üretilen, sağlıklı süt ürünleri",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lgz9ig&_wi=1",
imageAlt: "Mehmet Süt",
},
id: "3", name: "Mehmet Süt Ürünleri", role: "Süt Üreticisi", description: "Geleneksel yöntemlerle üretilen, sağlıklı süt ürünleri", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=lgz9ig", imageAlt: "Mehmet Süt"},
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
@@ -206,58 +153,22 @@ export default function HomePage() {
description="Bu haftanın en çok satılan ve popüler organik ürünleri keşfedin"
products={[
{
id: "1",
name: "Taze Kırmızı Elma",
price: "₺45,99",
variant: "1 KG Paket",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kwcrp3&_wi=2",
imageAlt: "Taze kırmızı elma",
isFavorited: false,
id: "1", name: "Taze Kırmızı Elma", price: "₺45,99", variant: "1 KG Paket", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=kwcrp3", imageAlt: "Taze kırmızı elma", isFavorited: false,
},
{
id: "2",
name: "Organik Domates",
price: "₺38,50",
variant: "2 KG Paket",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=n4rq0j&_wi=2",
imageAlt: "Organik domates",
isFavorited: false,
id: "2", name: "Organik Domates", price: "₺38,50", variant: "2 KG Paket", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=n4rq0j", imageAlt: "Organik domates", isFavorited: false,
},
{
id: "3",
name: "Taze Yeşil Salata",
price: "₺22,99",
variant: "500 GR",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6f334y&_wi=1",
imageAlt: "Taze yeşil salata",
isFavorited: false,
id: "3", name: "Taze Yeşil Salata", price: "₺22,99", variant: "500 GR", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=6f334y", imageAlt: "Taze yeşil salata", isFavorited: false,
},
{
id: "4",
name: "Ekofarma Çiğ Süt",
price: "₺15,99",
variant: "1 LT",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=bs9dsl&_wi=1",
imageAlt: "Ekofarma çiğ süt",
isFavorited: false,
id: "4", name: "Ekofarma Çiğ Süt", price: "₺15,99", variant: "1 LT", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=bs9dsl", imageAlt: "Ekofarma çiğ süt", isFavorited: false,
},
{
id: "5",
name: "Organik Arı Balı",
price: "₺89,99",
variant: "500 GR Kavanoz",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=j5eapc&_wi=2",
imageAlt: "Organik arı balı",
isFavorited: false,
id: "5", name: "Organik Arı Balı", price: "₺89,99", variant: "500 GR Kavanoz", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=j5eapc", imageAlt: "Organik arı balı", isFavorited: false,
},
{
id: "6",
name: "Karma Kuruyemiş Karışımı",
price: "₺65,99",
variant: "500 GR",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=3gn95g&_wi=2",
imageAlt: "Karma kuruyemiş",
isFavorited: false,
id: "6", name: "Karma Kuruyemiş Karışımı", price: "₺65,99", variant: "500 GR", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=3gn95g", imageAlt: "Karma kuruyemiş", isFavorited: false,
},
]}
gridVariant="uniform-all-items-equal"

View File

@@ -1,51 +1,45 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from "react";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
fontSize?: number;
fontFamily?: string;
fontWeight?: number | string;
fill?: string;
stroke?: string;
strokeWidth?: number;
textAnchor?: "start" | "middle" | "end";
dominantBaseline?: "hanging" | "middle" | "auto" | "alphabetic";
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = "", fontSize = 48,
fontFamily = "Arial, sans-serif", fontWeight = "bold", fill = "currentColor", stroke = "none", strokeWidth = 1,
textAnchor = "middle", dominantBaseline = "middle"}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox={`0 0 ${text.length * fontSize * 0.6} ${fontSize * 1.5}`}
className={className}
xmlns="http://www.w3.org/2000/svg"
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x={`${text.length * fontSize * 0.3}`}
y={`${fontSize * 0.75}`}
fontSize={fontSize}
fontFamily={fontFamily}
fontWeight={fontWeight}
fill={fill}
stroke={stroke}
strokeWidth={strokeWidth}
textAnchor={textAnchor}
dominantBaseline={dominantBaseline}
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;