-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
custom_builds_bloc.dart
86 lines (79 loc) · 3.49 KB
/
custom_builds_bloc.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/models/models.dart';
import 'package:shiori/domain/services/data_service.dart';
import 'package:shiori/domain/services/genshin_service.dart';
part 'custom_builds_bloc.freezed.dart';
part 'custom_builds_event.dart';
part 'custom_builds_state.dart';
class CustomBuildsBloc extends Bloc<CustomBuildsEvent, CustomBuildsState> {
final GenshinService _genshinService;
final DataService _dataService;
CustomBuildsBloc(this._genshinService, this._dataService) : super(const CustomBuildsState.loaded()) {
on<CustomBuildsEvent>((event, emit) => _handleEvent(event, emit));
}
Future<void> _handleEvent(CustomBuildsEvent event, Emitter<CustomBuildsState> emit) async {
final newState = event.map(
load: (_) {
// final dummyA = CustomBuildModel(
// key: 1,
// position: 1,
// title: 'Physical Dps',
// type: CharacterRoleType.dps,
// subType: CharacterRoleSubType.electro,
// showOnCharacterDetail: true,
// character: _genshinService.getCharacterForCard('keqing'),
// weapons: [
// _genshinService.getWeaponForCard('blackcliff-longsword'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// _genshinService.getWeaponForCard('iron-sting'),
// _genshinService.getWeaponForCard('mistsplitter-reforged'),
// _genshinService.getWeaponForCard('prototype-rancour'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// _genshinService.getWeaponForCard('blackcliff-longsword'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// ],
// artifacts: [
// _genshinService.getArtifactForCard('shimenawas-reminiscence'),
// _genshinService.getArtifactForCard('thundersoother'),
// ],
// );
// final dummyB = CustomBuildModel(
// key: 1,
// position: 2,
// title: 'Physical Dps',
// type: CharacterRoleType.dps,
// subType: CharacterRoleSubType.electro,
// showOnCharacterDetail: true,
// character: _genshinService.getCharacterForCard('ganyu'),
// weapons: [
// _genshinService.getWeaponForCard('blackcliff-longsword'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// _genshinService.getWeaponForCard('iron-sting'),
// _genshinService.getWeaponForCard('mistsplitter-reforged'),
// _genshinService.getWeaponForCard('prototype-rancour'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// _genshinService.getWeaponForCard('blackcliff-longsword'),
// _genshinService.getWeaponForCard('sword-of-descension'),
// ],
// artifacts: [
// _genshinService.getArtifactForCard('shimenawas-reminiscence'),
// _genshinService.getArtifactForCard('thundersoother'),
// ],
// );
// final builds = _dataService.getAllCustomBuilds()
// ..add(dummyA)
// ..add(dummyB)
// ..add(dummyA)
// ..add(dummyB);
// return state.copyWith.call(builds: builds);
final builds = _dataService.getAllCustomBuilds();
return state.copyWith.call(builds: builds);
},
delete: (e) {
return state;
},
);
emit(newState);
}
}