@props([ 'board', 'posts', 'variant' => 'tenant', 'skin' => null, 'item' => null, 'showImage' => true, 'boardLabel' => null, 'config' => [], 'showSummary' => true, 'emptyMessage' => '표시할 글이 없습니다.', ]) @php use Illuminate\Support\Arr; $config = is_array($config) ? $config : []; $item = Arr::get($config, 'item', $item ?? 'card'); $explicitSkin = Arr::get($config, 'skin', $skin); $allowedSkins = ['default', 'faq', 'bbs', 'grid', 'carousel', 'scroll', 'list']; $allowedItems = ['card', 'list', 'media', 'listcard']; $resolvedSkin = in_array($explicitSkin, $allowedSkins, true) ? $explicitSkin : 'grid'; $resolvedSkin = match ($resolvedSkin) { 'default' => 'grid', 'faq' => 'faq', 'bbs' => 'bbs', 'grid', 'carousel', 'scroll', 'list' => $resolvedSkin, default => 'grid', }; $resolvedItem = $item === 'media' ? 'list' : (in_array($item, $allowedItems, true) ? $item : 'card'); $skinConfig = array_merge($config, [ 'item' => $resolvedItem, 'skin' => $resolvedSkin, 'showImage' => $showImage, 'boardLabel' => $boardLabel, 'variant' => $variant, ]); $isPaginator = method_exists($posts, 'firstItem') && method_exists($posts, 'lastItem'); $summaryText = $isPaginator ? sprintf( '총 %s개 · %s-%s개 표시', number_format($posts->total()), number_format($posts->firstItem() ?? 0), number_format($posts->lastItem() ?? 0) ) : null; @endphp