Update Next.js configuration and package dependencies
All checks were successful
Deploy / deploy (push) Successful in 9m29s
All checks were successful
Deploy / deploy (push) Successful in 9m29s
- Modified redirects in next.config.ts to change the destination for "/sohbet" to "/listem". - Added new dependencies in package.json: marked, motion, react-markdown, remark-breaks, remark-gfm, shiki, and use-stick-to-bottom. - Updated pnpm-lock.yaml to reflect the new package versions and dependencies. - Removed obsolete stack files for Flutter, Nuxt, Nuxt.js, React Native, and Svelte from the UI/UX Pro Max skill data. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
61
src/app/giris/giris-baslik.tsx
Normal file
61
src/app/giris/giris-baslik.tsx
Normal file
@@ -0,0 +1,61 @@
|
||||
"use client";
|
||||
|
||||
import { TextLoop } from "@/components/core/text-loop";
|
||||
|
||||
// Sonuç sayfasından gelen funnel'da dönen sempatik mesajlar.
|
||||
// Kısa tutulmalı — başlıkta tek satır, taşma yok.
|
||||
const FUNNEL_MESAJLARI = [
|
||||
"1 adım kaldı tercihine",
|
||||
"Listen seni bekliyor 👀",
|
||||
"24 tercih, hepsi sana göre",
|
||||
"5 kredin hazır, ya sen?",
|
||||
];
|
||||
|
||||
/**
|
||||
* Giriş sayfası başlığı. Kullanıcı sihirbazdan (callback /sonuc'a dönüyorsa)
|
||||
* geldiyse TextLoop'la funnel mesajları döner; diğer girişlerde sabit başlık.
|
||||
*/
|
||||
export function GirisBaslik({ funnel }: { funnel: boolean }) {
|
||||
if (!funnel) {
|
||||
return <h1 className="font-heading text-2xl font-bold">Giriş yap</h1>;
|
||||
}
|
||||
|
||||
return (
|
||||
<h1 className="font-heading text-2xl font-bold">
|
||||
<TextLoop
|
||||
className="overflow-y-clip"
|
||||
interval={2.5}
|
||||
transition={{
|
||||
type: "spring",
|
||||
stiffness: 900,
|
||||
damping: 80,
|
||||
mass: 10,
|
||||
}}
|
||||
variants={{
|
||||
initial: {
|
||||
y: 20,
|
||||
rotateX: 90,
|
||||
opacity: 0,
|
||||
filter: "blur(4px)",
|
||||
},
|
||||
animate: {
|
||||
y: 0,
|
||||
rotateX: 0,
|
||||
opacity: 1,
|
||||
filter: "blur(0px)",
|
||||
},
|
||||
exit: {
|
||||
y: -20,
|
||||
rotateX: -90,
|
||||
opacity: 0,
|
||||
filter: "blur(4px)",
|
||||
},
|
||||
}}
|
||||
>
|
||||
{FUNNEL_MESAJLARI.map((mesaj) => (
|
||||
<span key={mesaj}>{mesaj}</span>
|
||||
))}
|
||||
</TextLoop>
|
||||
</h1>
|
||||
);
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import type { Metadata } from "next";
|
||||
import { redirect } from "next/navigation";
|
||||
import { getSession } from "@/lib/session";
|
||||
import { GirisForm } from "./giris-form";
|
||||
import { GirisBaslik } from "./giris-baslik";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Giriş — KolayTercih",
|
||||
@@ -19,14 +20,28 @@ export default async function GirisPage({
|
||||
const session = await getSession();
|
||||
if (session) redirect(callbackURL);
|
||||
|
||||
// Sihirbaz funnel'ı: seçimler yapıldı, listeye giriş kaldı
|
||||
const funnel = callbackURL.startsWith("/sonuc");
|
||||
|
||||
return (
|
||||
<div className="flex min-h-screen flex-col bg-slate-50 text-slate-900">
|
||||
<main className="mx-auto flex w-full max-w-md flex-1 flex-col items-stretch justify-center px-4 py-16">
|
||||
<div className="rounded-2xl border border-slate-200 bg-white p-8 shadow-sm">
|
||||
<h1 className="font-heading text-2xl font-bold">Giriş yap</h1>
|
||||
<GirisBaslik funnel={funnel} />
|
||||
<p className="mt-2 text-sm text-slate-600">
|
||||
Kayıt olduğunda <span className="font-semibold">5 deneme kredisi</span>{" "}
|
||||
hesabına tanımlanır — AI danışmana ücretsiz soru sorabilirsin.
|
||||
{funnel ? (
|
||||
<>
|
||||
Seçimlerin hazır — giriş yap,{" "}
|
||||
<span className="font-semibold">5 deneme kredinle</span> listen
|
||||
hemen üretilsin.
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
Kayıt olduğunda{" "}
|
||||
<span className="font-semibold">5 deneme kredisi</span> hesabına
|
||||
tanımlanır — AI danışmana ücretsiz soru sorabilirsin.
|
||||
</>
|
||||
)}
|
||||
</p>
|
||||
<GirisForm callbackURL={callbackURL} />
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user