"use client";

// Çekmece kapalıyken hiçbir şey çizmez; drag/Reorder kodunun baseline
// bundle'a girmemesi için ssr'siz dynamic import (layout server component
// olduğundan bu sarmalayıcı gerekli). Kapı: liste boş ve çekmece kapalıyken
// chunk hiç inmez — hydration'la birlikte koşulsuz inmesin (bundle-conditional).

import dynamic from "next/dynamic";
import { useCekmeceAcik, useManuelListe } from "../liste-store";

const ListeCekmecesiIc = dynamic(
  () => import("./liste-cekmecesi").then((m) => m.ListeCekmecesi),
  { ssr: false },
);

/** Navbar butonu hover/focus'unda chunk'ı önden ısıt (bundle-preload). */
export function preloadListeCekmecesi() {
  void import("./liste-cekmecesi");
}

export function ListeCekmecesiLazy() {
  const acik = useCekmeceAcik();
  const liste = useManuelListe();
  // "+" uçuş animasyon katmanı da çekmece modülünde yaşadığı için liste
  // doluysa (çekmece kapalı olsa da) mount kalır; yalnızca boş+kapalı durumda
  // atlanır — ilk ziyaretin en yaygın hâli.
  return acik || liste.length > 0 ? <ListeCekmecesiIc /> : null;
}
