web sitesi yönetimi

This commit is contained in:
2026-01-25 01:46:12 +03:00
parent 6e56b1e75f
commit 0fe49b5c96
15 changed files with 575 additions and 155 deletions

View File

@@ -1,15 +1,20 @@
import Link from "next/link"
import { getSiteContents } from "@/lib/data"
import { Instagram, Youtube, Facebook } from "lucide-react"
import { FaTiktok } from "react-icons/fa"
export async function Footer() {
const siteSettings = await getSiteContents()
export function Footer() {
return (
<footer className="w-full border-t bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 py-12 md:py-24 lg:py-32">
<div className="container grid gap-8 px-4 md:px-6 lg:grid-cols-4">
<div className="flex flex-col gap-2">
<Link href="/" className="flex items-center gap-2">
<span className="text-xl font-bold tracking-tighter">PARAKASA</span>
<span className="text-xl font-bold tracking-tighter">{siteSettings.site_title || "PARAKASA"}</span>
</Link>
<p className="text-sm text-muted-foreground">
Yüksek güvenlikli çelik kasa ve para sayma sistemleri için güvenilir çözüm ortağınız.
{siteSettings.site_description || "Yüksek güvenlikli çelik kasa ve para sayma sistemleri için güvenilir çözüm ortağınız."}
</p>
</div>
<div className="flex flex-col gap-2">
@@ -44,19 +49,36 @@ export function Footer() {
</div>
<div className="flex flex-col gap-2">
<h3 className="font-semibold">Bize Ulaşın</h3>
<p className="text-sm text-muted-foreground">
İstanbul, Türkiye
<p className="text-sm text-muted-foreground whitespace-pre-wrap">
{siteSettings.contact_address || "İstanbul, Türkiye"}
</p>
<p className="text-sm text-muted-foreground">
+90 212 000 00 00
{siteSettings.contact_phone || "+90 212 000 00 00"}
</p>
<p className="text-sm text-muted-foreground">
{siteSettings.contact_email}
</p>
<div className="flex gap-4 mt-4">
{/* Social Media Icons would go here */}
{siteSettings.social_instagram && (
<Link href={siteSettings.social_instagram} target="_blank" className="text-muted-foreground hover:text-foreground">
<Instagram className="h-5 w-5" />
</Link>
)}
{siteSettings.social_youtube && (
<Link href={siteSettings.social_youtube} target="_blank" className="text-muted-foreground hover:text-foreground">
<Youtube className="h-5 w-5" />
</Link>
)}
{siteSettings.social_tiktok && (
<Link href={siteSettings.social_tiktok} target="_blank" className="text-muted-foreground hover:text-foreground">
<FaTiktok className="h-5 w-5" />
</Link>
)}
</div>
</div>
</div>
<div className="container px-4 md:px-6 mt-8 pt-8 border-t text-center text-sm text-muted-foreground">
© 2026 ParaKasa. Tüm hakları saklıdır.
© {new Date().getFullYear()} {siteSettings.site_title || "ParaKasa"}. Tüm hakları saklıdır.
</div>
</footer>
)

View File

@@ -4,19 +4,33 @@ import { Button } from "@/components/ui/button"
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"
import { Input } from "@/components/ui/input"
import { createClient } from "@/lib/supabase-server"
import { getSiteContents } from "@/lib/data"
import Image from "next/image"
export async function Navbar() {
const supabase = createClient()
const { data: { user } } = await supabase.auth.getUser()
const siteSettings = await getSiteContents()
return (
<header className="sticky top-0 z-50 w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
<div className="container flex h-16 items-center">
<div className="mr-8 hidden md:flex">
<Link href="/" className="mr-6 flex items-center space-x-2">
<span className="text-xl font-bold tracking-tighter bg-clip-text text-transparent bg-gradient-to-r from-slate-900 to-slate-500 dark:from-slate-100 dark:to-slate-400">
PARAKASA
</span>
{siteSettings.site_logo ? (
<div className="relative h-10 w-32">
<Image
src={siteSettings.site_logo}
alt={siteSettings.site_title || "ParaKasa"}
fill
className="object-contain object-left"
/>
</div>
) : (
<span className="text-xl font-bold tracking-tighter bg-clip-text text-transparent bg-gradient-to-r from-slate-900 to-slate-500 dark:from-slate-100 dark:to-slate-400">
{siteSettings.site_title || "PARAKASA"}
</span>
)}
</Link>
<nav className="flex items-center space-x-6 text-sm font-medium">
<Link
@@ -52,8 +66,19 @@ export async function Navbar() {
</Button>
</SheetTrigger>
<SheetContent side="left" className="pr-0">
<Link href="/" className="flex items-center">
<span className="font-bold">PARAKASA</span>
<Link href="/" className="flex items-center mb-6">
{siteSettings.site_logo ? (
<div className="relative h-10 w-32">
<Image
src={siteSettings.site_logo}
alt={siteSettings.site_title || "ParaKasa"}
fill
className="object-contain object-left"
/>
</div>
) : (
<span className="font-bold text-xl">{siteSettings.site_title || "PARAKASA"}</span>
)}
</Link>
<div className="flex flex-col gap-4 mt-8">
<Link href="/products">Ürünler</Link>