From b8130cb6b92ed94a3ce97d9121010c395caddc15 Mon Sep 17 00:00:00 2001 From: h7x4abk3g Date: Thu, 9 Jul 2020 20:06:48 +0200 Subject: [PATCH] Add Bloc --- lib/bloc/kanji/kanji_bloc.dart | 18 ++++++++ lib/bloc/kanji/kanji_event.dart | 4 ++ lib/bloc/kanji/kanji_state.dart | 14 ++++++ lib/bloc/search/search_bloc.dart | 18 ++++++++ lib/bloc/search/search_event.dart | 4 ++ lib/bloc/search/search_state.dart | 14 ++++++ .../{kanjiSearch => kanji}/kanji_list.dart | 0 .../kanji_search_card.dart | 0 .../{kanjiSearch => kanji}/yomi_card.dart | 0 lib/main.dart | 2 +- lib/services/jisho_search.dart | 2 +- pubspec.lock | 44 +++++++++++++++++-- pubspec.yaml | 3 +- 13 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 lib/bloc/kanji/kanji_bloc.dart create mode 100644 lib/bloc/kanji/kanji_event.dart create mode 100644 lib/bloc/kanji/kanji_state.dart create mode 100644 lib/bloc/search/search_bloc.dart create mode 100644 lib/bloc/search/search_event.dart create mode 100644 lib/bloc/search/search_state.dart rename lib/components/{kanjiSearch => kanji}/kanji_list.dart (100%) rename lib/components/{kanjiSearch => kanji}/kanji_search_card.dart (100%) rename lib/components/{kanjiSearch => kanji}/yomi_card.dart (100%) diff --git a/lib/bloc/kanji/kanji_bloc.dart b/lib/bloc/kanji/kanji_bloc.dart new file mode 100644 index 0000000..40a8030 --- /dev/null +++ b/lib/bloc/kanji/kanji_bloc.dart @@ -0,0 +1,18 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:meta/meta.dart'; + +part 'kanji_event.dart'; +part 'kanji_state.dart'; + +class KanjiBloc extends Bloc { + KanjiBloc() : super(KanjiSearchInitial()); + + @override + Stream mapEventToState( + KanjiEvent event, + ) async* { + // TODO: implement mapEventToState + } +} diff --git a/lib/bloc/kanji/kanji_event.dart b/lib/bloc/kanji/kanji_event.dart new file mode 100644 index 0000000..d2475d0 --- /dev/null +++ b/lib/bloc/kanji/kanji_event.dart @@ -0,0 +1,4 @@ +part of 'kanji_bloc.dart'; + +@immutable +abstract class KanjiEvent {} diff --git a/lib/bloc/kanji/kanji_state.dart b/lib/bloc/kanji/kanji_state.dart new file mode 100644 index 0000000..5013d25 --- /dev/null +++ b/lib/bloc/kanji/kanji_state.dart @@ -0,0 +1,14 @@ +part of 'kanji_bloc.dart'; + +@immutable +abstract class KanjiState {} + +class KanjiSearchInitial extends KanjiState {} + +class KanjiSearchLoading extends KanjiState {} + +class KanjiSearchFinished extends KanjiState {} + +class KanjiSearchError extends KanjiState {} + +class ReKanjiSearch extends KanjiState {} diff --git a/lib/bloc/search/search_bloc.dart b/lib/bloc/search/search_bloc.dart new file mode 100644 index 0000000..1cd2b14 --- /dev/null +++ b/lib/bloc/search/search_bloc.dart @@ -0,0 +1,18 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:meta/meta.dart'; + +part 'search_event.dart'; +part 'search_state.dart'; + +class SearchBloc extends Bloc { + SearchBloc() : super(SearchInitial()); + + @override + Stream mapEventToState( + SearchEvent event, + ) async* { + // TODO: implement mapEventToState + } +} diff --git a/lib/bloc/search/search_event.dart b/lib/bloc/search/search_event.dart new file mode 100644 index 0000000..8d89c5f --- /dev/null +++ b/lib/bloc/search/search_event.dart @@ -0,0 +1,4 @@ +part of 'search_bloc.dart'; + +@immutable +abstract class SearchEvent {} diff --git a/lib/bloc/search/search_state.dart b/lib/bloc/search/search_state.dart new file mode 100644 index 0000000..87f3d6a --- /dev/null +++ b/lib/bloc/search/search_state.dart @@ -0,0 +1,14 @@ +part of 'search_bloc.dart'; + +@immutable +abstract class SearchState {} + +class SearchInitial extends SearchState {} + +class SearchLoading extends SearchState {} + +class SearchFinished extends SearchState {} + +class SearchError extends SearchState {} + +class ReSearch extends SearchState {} \ No newline at end of file diff --git a/lib/components/kanjiSearch/kanji_list.dart b/lib/components/kanji/kanji_list.dart similarity index 100% rename from lib/components/kanjiSearch/kanji_list.dart rename to lib/components/kanji/kanji_list.dart diff --git a/lib/components/kanjiSearch/kanji_search_card.dart b/lib/components/kanji/kanji_search_card.dart similarity index 100% rename from lib/components/kanjiSearch/kanji_search_card.dart rename to lib/components/kanji/kanji_search_card.dart diff --git a/lib/components/kanjiSearch/yomi_card.dart b/lib/components/kanji/yomi_card.dart similarity index 100% rename from lib/components/kanjiSearch/yomi_card.dart rename to lib/components/kanji/yomi_card.dart diff --git a/lib/main.dart b/lib/main.dart index c9f8585..5e15e42 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,7 +8,7 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Flutter Demo', + title: 'Jisho Study Tool', theme: ThemeData( primarySwatch: Colors.blue, ), diff --git a/lib/services/jisho_search.dart b/lib/services/jisho_search.dart index 9004266..95044f9 100644 --- a/lib/services/jisho_search.dart +++ b/lib/services/jisho_search.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:unofficial_jisho_api/api.dart' as jisho; -import 'package:jisho_study_tool/components/kanjiSearch/kanji_search_card.dart'; +import 'package:jisho_study_tool/components/kanji/kanji_search_card.dart'; Widget searchForKanji(String kanji) { return FutureBuilder( diff --git a/pubspec.lock b/pubspec.lock index 8873c18..b904e8c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -8,6 +8,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.4.1" + bloc: + dependency: transitive + description: + name: bloc + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.1" boolean_selector: dependency: transitive description: @@ -50,13 +57,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.16.1" - cupertino_icons: - dependency: "direct main" + cubit: + dependency: transitive description: - name: cupertino_icons + name: cubit url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "0.1.2" fake_async: dependency: transitive description: @@ -69,6 +76,20 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.1" + flutter_cubit: + dependency: transitive + description: + name: flutter_cubit + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" flutter_test: dependency: "direct dev" description: flutter @@ -116,6 +137,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.8" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" path: dependency: transitive description: @@ -130,6 +158,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0+1" + provider: + dependency: transitive + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "4.3.0" sky_engine: dependency: transitive description: flutter @@ -200,3 +235,4 @@ packages: version: "2.0.8" sdks: dart: ">=2.9.0-14.0.dev <3.0.0" + flutter: ">=1.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index d75b381..26113cb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,8 +22,9 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 + # cupertino_icons: ^0.1.2 unofficial_jisho_api: ^1.1.0 + flutter_bloc: ^5.0.1 dev_dependencies: flutter_test: