createViewTemplate function

String createViewTemplate(
  1. String blocName
)

Creates the template string for the BLoC view.

Implementation

String createViewTemplate(String blocName) {
  return """
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import 'bloc.dart';
import 'events.dart';
import 'state.dart';

class ${blocName}Page extends StatelessWidget {
  const ${blocName}Page({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (_) => ${blocName}Bloc()..add(${blocName}InitEvent()),
      child: BlocConsumer<${blocName}Bloc, ${blocName}State>(
        listener: (context, state) {
          // handle navigation or snackbars
        },
        builder: (context, state) {
          switch (state.status) {
            case ${blocName}Status.loading:
              return const Scaffold(
                body: Center(child: CircularProgressIndicator()),
              );
            case ${blocName}Status.loaded:
              return ${blocName}LoadedPage();
            case ${blocName}Status.error:
              return Scaffold(
                body: Center(
                  child: Text(state.error ?? "An error occurred"),
                ),
              );
            default:
              return const Scaffold(
                body: Center(child: Text("Unknown state")),
              );
          }
        },
      ),
    );
  }
}

class ${blocName}LoadedPage extends StatelessWidget {
  const ${blocName}LoadedPage({super.key});

  @override
  Widget build(BuildContext context) {
   final state = context.watch<${blocName}Bloc>().state;
      return Scaffold(body: Center(child: Text('${blocName}',style: TextStyle(fontSize: 30),),),);
  }
}
""";
}