Files
hipmi/templates/mutable/event.tmpl
2025-02-04 22:35:44 +08:00

43 lines
1.3 KiB
Cheetah

import 'dart:async';
import 'dart:developer' as developer;
import 'package:${appName}${relative}/index.dart';
import 'package:meta/meta.dart';
@immutable
abstract class ${upperName}Event {
Stream<${upperName}State> applyAsync(
{${upperName}State currentState, ${upperName}Bloc bloc});
final ${upperName}Repository _${privateName}Repository = ${upperName}Repository();
}
class Un${upperName}Event extends ${upperName}Event {
@override
Stream<${upperName}State> applyAsync({${upperName}State? currentState, ${upperName}Bloc? bloc}) async* {
yield Un${upperName}State(0);
}
}
class Load${upperName}Event extends ${upperName}Event {
final bool isError;
@override
String toString() => 'Load${upperName}Event';
Load${upperName}Event(this.isError);
@override
Stream<${upperName}State> applyAsync(
{${upperName}State? currentState, ${upperName}Bloc? bloc}) async* {
try {
yield Un${upperName}State(0);
await Future.delayed(const Duration(seconds: 1));
_${privateName}Repository.test(isError);
yield In${upperName}State(0, 'Hello world');
} catch (_, stackTrace) {
developer.log('$_', name: 'Load${upperName}Event', error: _, stackTrace: stackTrace);
yield Error${upperName}State(0, _.toString());
}
}
}