'use client'; import { useState, useEffect } from 'react'; import { createPortal } from 'react-dom'; import { FiList, FiChevronRight } from 'react-icons/fi'; import { PostToc } from './post-toc'; import { clsx, type ClassValue } from 'clsx'; import { twMerge } from 'tailwind-merge'; function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } export function PostLayout({ children, hasToc = true, contentKey }: { children: React.ReactNode; hasToc?: boolean; contentKey?: string }) { const [isTocOpen, setIsTocOpen] = useState(hasToc); const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); const tocButton = hasToc && mounted ? ( ) : null; return (