52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:flutter/material.dart';
 | 
						|
 | 
						|
class EmptyState extends StatelessWidget {
 | 
						|
  final IconData icon;
 | 
						|
  final String title;
 | 
						|
  final String description;
 | 
						|
  final Widget? action;
 | 
						|
 | 
						|
  const EmptyState({
 | 
						|
    super.key,
 | 
						|
    required this.icon,
 | 
						|
    required this.title,
 | 
						|
    required this.description,
 | 
						|
    this.action,
 | 
						|
  });
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context) {
 | 
						|
    return Center(
 | 
						|
      child: Padding(
 | 
						|
        padding: const EdgeInsets.all(24.0),
 | 
						|
        child: Column(
 | 
						|
          mainAxisAlignment: MainAxisAlignment.center,
 | 
						|
          children: [
 | 
						|
            Icon(
 | 
						|
              icon,
 | 
						|
              size: 64,
 | 
						|
              color: Theme.of(context).colorScheme.outline,
 | 
						|
            ),
 | 
						|
            const SizedBox(height: 16),
 | 
						|
            Text(
 | 
						|
              title,
 | 
						|
              style: Theme.of(context).textTheme.titleLarge,
 | 
						|
              textAlign: TextAlign.center,
 | 
						|
            ),
 | 
						|
            const SizedBox(height: 8),
 | 
						|
            Text(
 | 
						|
              description,
 | 
						|
              style: Theme.of(context).textTheme.bodyMedium,
 | 
						|
              textAlign: TextAlign.center,
 | 
						|
            ),
 | 
						|
            if (action != null) ...[
 | 
						|
              const SizedBox(height: 24),
 | 
						|
              action!,
 | 
						|
            ],
 | 
						|
          ],
 | 
						|
        ),
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |