generateBlocPage method

String generateBlocPage(
  1. String name
)

Implementation

String generateBlocPage(String name) {
  final className = toPascalCase(name);
  final variableName = toCamelCase(name);

  return '''
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../bloc/${toSnakeCase(name)}_bloc.dart';

class ${className}Page extends StatelessWidget {
const ${className}Page({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('$className'),
    ),
    body: BlocBuilder<${className}Bloc, ${className}State>(
      builder: (context, state) {
        if (state is ${className}Loading) {
          return const Center(child: CircularProgressIndicator());
        }

        if (state is ${className}Error) {
          return Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Text('Error: \${state.message}'),
                ElevatedButton(
                  onPressed: () => context.read<${className}Bloc>().add(const Refresh${className}s()),
                  child: const Text('Retry'),
                ),
              ],
            ),
          );
        }

        if (state is ${className}Loaded) {
          return RefreshIndicator(
            onRefresh: () async {
              context.read<${className}Bloc>().add(const Refresh${className}s());
            },
            child: ListView.builder(
              itemCount: state.${variableName}List.length,
              itemBuilder: (context, index) {
                final item = state.${variableName}List[index];
                return ListTile(
                  title: Text(item.id),
                  // Add more UI components here
                );
              },
            ),
          );
        }

        return const Center(child: Text('No data available'));
      },
    ),
  );
}
}
''';
}