dashboardFull static method

Widget dashboardFull({
  1. bool isWide = false,
})

Dashboard full-page skeleton (KPIs + chart + sections)

Implementation

static Widget dashboardFull({bool isWide = false}) {
  return SingleChildScrollView(
    padding: const EdgeInsets.all(16),
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        // Section header
        const SkeletonLoader(width: 200, height: 20, borderRadius: 6),
        const SizedBox(height: 4),
        const SkeletonLoader(width: 160, height: 10, borderRadius: 4),
        const SizedBox(height: 16),
        // KPI cards
        dashboardKpis(count: 4, isWide: isWide),
        const SizedBox(height: 20),
        // Section header 2
        const SkeletonLoader(width: 180, height: 20, borderRadius: 6),
        const SizedBox(height: 12),
        dashboardKpis(count: 4, isWide: isWide),
        const SizedBox(height: 24),
        // Chart placeholder
        Container(
          height: 240,
          decoration: BoxDecoration(
            color: Colors.white.withAlpha(13),
            borderRadius: BorderRadius.circular(16),
          ),
          padding: const EdgeInsets.all(16),
          child: const Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              SkeletonLoader(width: 140, height: 16, borderRadius: 4),
              Spacer(),
              SkeletonLoader(height: 150, borderRadius: 8),
            ],
          ),
        ),
        const SizedBox(height: 24),
        // Two cards side by side
        if (isWide)
          const Row(
            children: [
              Expanded(child: SkeletonLoader(height: 200, borderRadius: 16)),
              SizedBox(width: 16),
              Expanded(child: SkeletonLoader(height: 200, borderRadius: 16)),
            ],
          )
        else ...[
          const SkeletonLoader(height: 200, borderRadius: 16),
          const SizedBox(height: 16),
          const SkeletonLoader(height: 200, borderRadius: 16),
        ],
      ],
    ),
  );
}