"use client"; import type { ReactNode } from "react"; import Image from "next/image"; import Link from "next/link"; import { motion, useReducedMotion } from "framer-motion"; import { Typography } from "poyraz-ui/atoms"; import { ArrowUpRight, BarChart3, CalendarDays, Kanban, Wallet, } from "lucide-react"; type AuthPageShellProps = { branding: { applicationName: string; lightLogoUrl: string | null; darkLogoUrl: string | null; }; title: string; description: string; imageSrc?: string; imageAlt?: string; imageSide?: "left" | "right"; form: ReactNode; secondaryAction?: ReactNode; footer: ReactNode; }; const highlights = [ { label: "Müşteriler", icon: Kanban }, { label: "Takvim", icon: CalendarDays }, { label: "Finans", icon: Wallet }, { label: "Raporlar", icon: BarChart3 }, ]; export function AuthPageShell({ branding, title, description, form, secondaryAction, footer, }: AuthPageShellProps) { const reducedMotion = useReducedMotion(); const fadeUp = { initial: reducedMotion ? false : { opacity: 0, y: 18 }, animate: { opacity: 1, y: 0 }, transition: { duration: reducedMotion ? 0 : 0.55, ease: [0.22, 1, 0.36, 1] as const, }, }; return (
{branding.applicationName}
Freelancer işlerini, müşterilerini ve finansını tek yerde yönet. {branding.applicationName}, günlük operasyonunu, projelerini, side projectlerini ve temel finans durumunu sade raporlarla takip etmen için tasarlanır. {highlights.map((item) => { const Icon = item.icon; return (
{item.label}
); })}
Açık kaynak ve self-host edilebilir.{" "} GitHub üzerinden ulaşabilirsin. Poyraz Avsever tarafından kodlandı.
{`${branding.applicationName}
{title} {description}
{form} {secondaryAction} {footer}
); }