Files
kolaytercih/src/features/sihirbaz/components/sihirbaz-adimlar-lazy.tsx
bilalgursen 792e8c7346 refactor: sihirbaz feature'ı — lib/sihirbaz bölündü, bileşenler taşındı (Faz 6)
- lib/sihirbaz.ts ikiye ayrıldı: sihirbaz-sabitler.ts (şema + doğrulayıcılar +
  event/storage sabitleri + sonucHref/secimOzeti, izomorfik) ve
  sihirbaz-profil.ts (localStorage oku/yaz/sil); 25 tüketicinin importu
  sembol bazında bölünerek güncellendi, localStorage anahtar/event değerleri
  birebir aynı
- sihirbaz-adimlar(+lazy), hero-form, cta-sira-form, il-secim-haritasi ve
  /sonuc'un sihirbaz-modal/sihirbaz-cagri-karti/sira-gerekli bileşenleri
  features/sihirbaz/components/ altına taşındı
- sihirbaz-queries.ts ve async SihirbazBolumu sarmalayıcısı /sonuc sayfa
  dönüşümüyle birlikte Faz 9'da gelecek (o zamana dek ölü kod olurlardı)
- Davranış değişikliği yok

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-08 01:31:32 +03:00

59 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client";
// SihirbazAdimlar, turkey-map-react'in ~235 KB'lık il geometrisini taşır.
// Modal kapalıyken bu yükün ilk sayfa bundle'ına girmemesi için tek noktadan
// dynamic import: hem hero-form hem sonuc/sihirbaz-modal burayı kullanır.
import dynamic from "next/dynamic";
import { Skeleton } from "@/components/ui/skeleton";
function SihirbazAdimlarSkeleton() {
return (
<div
aria-busy="true"
aria-live="polite"
className="flex min-h-64 flex-col gap-5"
>
<div className="flex items-center gap-1.5">
<Skeleton className="h-1.5 w-6 rounded-full" />
<Skeleton className="size-1.5 rounded-full" />
<Skeleton className="size-1.5 rounded-full" />
<Skeleton className="ml-2 h-3 w-14" />
</div>
<div>
<Skeleton className="h-6 w-64 max-w-full" />
<Skeleton className="mt-2 h-4 w-80 max-w-full" />
<div className="mt-4 flex flex-wrap gap-2">
{[88, 112, 96, 128, 72, 104, 120, 84, 100].map((w, i) => (
<Skeleton
key={i}
className="h-9 rounded-full"
style={{ width: w }}
/>
))}
</div>
</div>
<div className="flex items-center justify-between border-t border-slate-100 pt-4">
<Skeleton className="h-9 w-20 rounded-lg" />
<Skeleton className="h-9 w-24 rounded-lg" />
</div>
</div>
);
}
export const SihirbazAdimlarLazy = dynamic(
() =>
import("./sihirbaz-adimlar").then((m) => m.SihirbazAdimlar),
{
ssr: false,
loading: () => <SihirbazAdimlarSkeleton />,
},
);
/** Kullanıcı forma dokunduğu anda chunk'ı arka planda indir. */
export function preloadSihirbazAdimlar() {
void import("./sihirbaz-adimlar");
}