diff --git a/lib/blocs/bloc_exp.dart b/lib/blocs/bloc_exp.dart index 2b83bd0..b79d2be 100644 --- a/lib/blocs/bloc_exp.dart +++ b/lib/blocs/bloc_exp.dart @@ -12,9 +12,9 @@ export 'category_widget/category_widget_bloc.dart'; export 'category_widget/category_widget_state.dart'; export 'category_widget/category_widget_event.dart'; -export 'collect/collect_bloc.dart'; -export 'collect/collect_state.dart'; -export 'collect/collect_event.dart'; +export 'like/like_bloc.dart'; +export 'like/like_state.dart'; +export 'like/like_event.dart'; export 'detail/detail_bloc.dart'; export 'detail/detail_state.dart'; diff --git a/lib/blocs/category/category_bloc.dart b/lib/blocs/category/category_bloc.dart index 6c1f0d6..5cd011f 100644 --- a/lib/blocs/category/category_bloc.dart +++ b/lib/blocs/category/category_bloc.dart @@ -41,8 +41,7 @@ class CategoryBloc extends Bloc { if (event is EventAddCategory) { CategoryPo categoryPo = CategoryPo( name: event.name, - color: event.color ?? - ColorUtils.colorString(UnitColor.collectColorSupport[0]), + color: event.color ?? ColorUtils.colorString(UnitColor.collectColorSupport[0]), info: event.info ?? '这里什么都没有...', created: DateTime.now(), updated: DateTime.now()); diff --git a/lib/blocs/category/category_event.dart b/lib/blocs/category/category_event.dart index f931dd7..f362ff6 100644 --- a/lib/blocs/category/category_event.dart +++ b/lib/blocs/category/category_event.dart @@ -33,6 +33,7 @@ class EventDeleteCategory extends CategoryEvent{ List get props => [id]; } + class EventAddCategory extends CategoryEvent{ final String name; final String info; diff --git a/lib/blocs/collect/collect_event.dart b/lib/blocs/collect/collect_event.dart deleted file mode 100644 index f351d4d..0000000 --- a/lib/blocs/collect/collect_event.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:equatable/equatable.dart'; -import 'package:flutter_unit/model/widget_model.dart'; - -/// create by 张风捷特烈 on 2020-04-09 -/// contact me by email 1981462002@qq.com -/// 说明: - - -abstract class CollectEvent extends Equatable {} - - -//class EventSetCollect extends CollectEvent { -// final bool collect; -// -// EventSetCollect({this.collect}); -// -// @override -// // TODO: implement props -// List get props => [collect]; -//} - -class EventSetCollectData extends CollectEvent { - List get props => []; -} - - -class ToggleCollectEvent extends CollectEvent { - final int id; - - ToggleCollectEvent({this.id}); - - @override - // TODO: implement props - List get props => [id]; -} - -class LoadCollectEvent extends CollectEvent{ - @override - List get props => []; - -} - diff --git a/lib/blocs/collect/collect_bloc.dart b/lib/blocs/like/like_bloc.dart similarity index 59% rename from lib/blocs/collect/collect_bloc.dart rename to lib/blocs/like/like_bloc.dart index dff8270..24ad761 100644 --- a/lib/blocs/collect/collect_bloc.dart +++ b/lib/blocs/like/like_bloc.dart @@ -4,33 +4,33 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/storage/dao/widget_dao.dart'; import 'package:flutter_unit/repositories/itf/widget_repository.dart'; -import 'collect_event.dart'; -import 'collect_state.dart'; +import 'like_event.dart'; +import 'like_state.dart'; /// create by 张风捷特烈 on 2020-04-07 /// contact me by email 1981462002@qq.com /// 说明: -class CollectBloc extends Bloc { +class LikeWidgetBloc extends Bloc { final WidgetRepository repository; - CollectBloc({@required this.repository}); + LikeWidgetBloc({@required this.repository}); @override - CollectState get initialState => CollectState(widgets: []); //初始状态 + LikeWidgetState get initialState => LikeWidgetState(widgets: []); //初始状态 @override - Stream mapEventToState( - CollectEvent event, + Stream mapEventToState( + LikeWidgetEvent event, ) async* { - if (event is ToggleCollectEvent) { + if (event is ToggleLikeWidgetEvent) { await repository.toggleCollect(event.id); final widgets = await repository.loadCollectWidgets(); - yield CollectState(widgets: widgets); + yield LikeWidgetState(widgets: widgets); } if( event is EventSetCollectData){ final widgets = await repository.loadCollectWidgets(); - yield CollectState(widgets: widgets); + yield LikeWidgetState(widgets: widgets); } } } diff --git a/lib/blocs/like/like_event.dart b/lib/blocs/like/like_event.dart new file mode 100644 index 0000000..e587669 --- /dev/null +++ b/lib/blocs/like/like_event.dart @@ -0,0 +1,27 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter_unit/model/widget_model.dart'; + +/// create by 张风捷特烈 on 2020-04-09 +/// contact me by email 1981462002@qq.com +/// 说明: + +abstract class LikeWidgetEvent extends Equatable {} + +class EventSetCollectData extends LikeWidgetEvent { + List get props => []; +} + +class ToggleLikeWidgetEvent extends LikeWidgetEvent { + final int id; + + ToggleLikeWidgetEvent({this.id}); + + @override + // TODO: implement props + List get props => [id]; +} + +class LoadCollectEvent extends LikeWidgetEvent { + @override + List get props => []; +} diff --git a/lib/blocs/collect/collect_state.dart b/lib/blocs/like/like_state.dart similarity index 80% rename from lib/blocs/collect/collect_state.dart rename to lib/blocs/like/like_state.dart index 4c699fd..e4344ee 100644 --- a/lib/blocs/collect/collect_state.dart +++ b/lib/blocs/like/like_state.dart @@ -5,10 +5,10 @@ import 'package:flutter_unit/model/widget_model.dart'; /// contact me by email 1981462002@qq.com /// 说明: -class CollectState extends Equatable { +class LikeWidgetState extends Equatable { final List widgets; - CollectState({this.widgets}); + LikeWidgetState({this.widgets}); @override // TODO: implement props diff --git a/lib/views/app/bloc_wrapper.dart b/lib/views/app/bloc_wrapper.dart index 12c157c..9bda1a4 100644 --- a/lib/views/app/bloc_wrapper.dart +++ b/lib/views/app/bloc_wrapper.dart @@ -46,8 +46,8 @@ class _BlocWrapperState extends State { BlocProvider( create: (_) => categoryBloc..add(EventLoadCategory())), - BlocProvider( - create: (_) => CollectBloc(repository: repository) + BlocProvider( + create: (_) => LikeWidgetBloc(repository: repository) ..add(EventSetCollectData())), BlocProvider( diff --git a/lib/views/app/navigation/unit_navigation.dart b/lib/views/app/navigation/unit_navigation.dart index a8c6915..1d962ec 100644 --- a/lib/views/app/navigation/unit_navigation.dart +++ b/lib/views/app/navigation/unit_navigation.dart @@ -89,7 +89,7 @@ class _UnitNavigationState extends State { _controller.animateToPage(index, duration: const Duration(milliseconds: 200), curve: Curves.linear); if (index == 1) { - BlocProvider.of(context).add(EventSetCollectData()); + BlocProvider.of(context).add(EventSetCollectData()); } } } diff --git a/lib/views/items/widget/coupon_widget_list_item.dart b/lib/views/items/widget/coupon_widget_list_item.dart index 6fec1e4..63e2f89 100644 --- a/lib/views/items/widget/coupon_widget_list_item.dart +++ b/lib/views/items/widget/coupon_widget_list_item.dart @@ -3,8 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_star/flutter_star.dart'; import 'package:flutter_unit/app/res/cons.dart'; import 'package:flutter_unit/app/res/style/shape/coupon_shape_border.dart'; -import 'package:flutter_unit/blocs/collect/collect_bloc.dart'; -import 'package:flutter_unit/blocs/collect/collect_state.dart'; +import 'package:flutter_unit/blocs/bloc_exp.dart'; import 'package:flutter_unit/components/permanent/circle_image.dart'; import 'package:flutter_unit/components/permanent/circle_text.dart'; import 'package:flutter_unit/components/permanent/tag.dart'; @@ -95,7 +94,7 @@ class CouponWidgetListItem extends StatelessWidget { return Positioned( top: 0, right: 40, - child: BlocBuilder(builder: (_, s) { + child: BlocBuilder(builder: (_, s) { bool show = s.widgets.contains(data); return Opacity( opacity: show ? 1.0 : 0.0, diff --git a/lib/views/items/widget/simple_widget_list_item.dart b/lib/views/items/widget/simple_widget_list_item.dart index 80811e5..662f21a 100644 --- a/lib/views/items/widget/simple_widget_list_item.dart +++ b/lib/views/items/widget/simple_widget_list_item.dart @@ -75,7 +75,7 @@ class SimpleWidgetListItem extends StatelessWidget { return Positioned( top: 0, right: 40, - child: BlocBuilder(builder: (_, s) { + child: BlocBuilder(builder: (_, s) { bool show = s.widgets.contains(data); return Opacity( opacity: show ? 1.0 : 0.0, diff --git a/lib/views/items/widget/techno_widget_list_item.dart b/lib/views/items/widget/techno_widget_list_item.dart index b27598a..ff7e5d3 100644 --- a/lib/views/items/widget/techno_widget_list_item.dart +++ b/lib/views/items/widget/techno_widget_list_item.dart @@ -4,8 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_star/flutter_star.dart'; import 'package:flutter_unit/app/res/cons.dart'; import 'package:flutter_unit/app/res/style/shape/techno_shape.dart'; -import 'package:flutter_unit/blocs/collect/collect_bloc.dart'; -import 'package:flutter_unit/blocs/collect/collect_state.dart'; +import 'package:flutter_unit/blocs/bloc_exp.dart'; import 'package:flutter_unit/components/permanent/circle_image.dart'; import 'package:flutter_unit/components/permanent/circle_text.dart'; import 'package:flutter_unit/components/permanent/tag.dart'; @@ -70,7 +69,7 @@ class TechnoWidgetListItem extends StatelessWidget { return Positioned( top: 0, right: 40, - child: BlocBuilder(builder: (_, s) { + child: BlocBuilder(builder: (_, s) { bool show = s.widgets.contains(data); return Opacity( opacity: show ? 1.0 : 0.0, diff --git a/lib/views/pages/about/about_app_page.dart b/lib/views/pages/about/about_app_page.dart index 594f35e..f87c09f 100644 --- a/lib/views/pages/about/about_app_page.dart +++ b/lib/views/pages/about/about_app_page.dart @@ -162,9 +162,9 @@ class AboutAppPage extends StatelessWidget { InfoPanel( title: 'Flutter Unit 1.0', info: 'Flutter Unit 1.0 核心计划是收录widget,即widget集录。' - '目前收录组件204个,均可在app中进行查看。' + '目前收录组件 283 个,均可在 app 中进行查看。' '项目中提供widget图鉴文件可供下载参考。功能主要如下:\n' - '○ 200+的Flutter 组件收录和详情介绍。\n' + '○ 280+的 Flutter 组件收录和详情介绍。\n' '○ 对一些重要的组件提供操作体验。\n' '○ link to功能,查看组件时可以切换到相关组件。\n' '○ 组件收藏和取消收藏功能。\n' diff --git a/lib/views/pages/category/collect_page.dart b/lib/views/pages/category/collect_page.dart index e6d1b39..df9472c 100644 --- a/lib/views/pages/category/collect_page.dart +++ b/lib/views/pages/category/collect_page.dart @@ -7,7 +7,7 @@ import 'package:flutter_unit/components/permanent/circle_image.dart'; import 'package:flutter_unit/components/permanent/feedback_widget.dart'; import 'category_page.dart'; -import 'default_collect_page.dart'; +import 'like_widget_page.dart'; class CollectPage extends StatefulWidget { @override @@ -19,7 +19,7 @@ class _CollectPageState extends State final _tabs = [ '收藏集录', - '默认收藏', + '珍藏组件', ]; @override @@ -44,7 +44,7 @@ class _CollectPageState extends State body: TabBarView( children: [ CategoryPage(), - DefaultCollectPage(), + LikeWidgetPage(), ], ), ), diff --git a/lib/views/pages/category/default_collect_page.dart b/lib/views/pages/category/like_widget_page.dart similarity index 84% rename from lib/views/pages/category/default_collect_page.dart rename to lib/views/pages/category/like_widget_page.dart index 89e36d9..df21abc 100644 --- a/lib/views/pages/category/default_collect_page.dart +++ b/lib/views/pages/category/like_widget_page.dart @@ -10,9 +10,9 @@ import 'package:flutter_unit/views/items/collect_widget_list_item.dart'; /// contact me by email 1981462002@qq.com /// 说明: -class DefaultCollectPage extends StatelessWidget { +class LikeWidgetPage extends StatelessWidget { - final gridDelegate = const SliverGridDelegateWithFixedCrossAxisCount( + final SliverGridDelegate gridDelegate = const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, mainAxisSpacing: 10, crossAxisSpacing: 10, @@ -21,7 +21,7 @@ class DefaultCollectPage extends StatelessWidget { @override Widget build(BuildContext context) { - return BlocBuilder( + return BlocBuilder( builder: (ctx, state) { return CustomScrollView( slivers: [ @@ -37,7 +37,7 @@ class DefaultCollectPage extends StatelessWidget { }); } - Widget _buildContent(BuildContext context, CollectState state) { + Widget _buildContent(BuildContext context, LikeWidgetState state) { return SliverPadding( padding: EdgeInsets.only(top:10, left: 10, right: 10, bottom: 0), sliver: SliverGrid( @@ -58,8 +58,8 @@ class DefaultCollectPage extends StatelessWidget { } _deleteCollect(BuildContext context, WidgetModel model) => - BlocProvider.of(context) - .add(ToggleCollectEvent(id: model.id)); + BlocProvider.of(context) + .add(ToggleLikeWidgetEvent(id: model.id)); _toDetailPage(BuildContext context, WidgetModel model) { BlocProvider.of(context).add(FetchWidgetDetail(model)); diff --git a/lib/views/pages/widget_detail/widget_detail_page.dart b/lib/views/pages/widget_detail/widget_detail_page.dart index 7924949..25412d5 100644 --- a/lib/views/pages/widget_detail/widget_detail_page.dart +++ b/lib/views/pages/widget_detail/widget_detail_page.dart @@ -71,7 +71,7 @@ class _WidgetDetailPageState extends State { Widget _buildCollectButton(WidgetModel model, BuildContext context) { //监听 CollectBloc 伺机弹出toast - return BlocListener( + return BlocListener( listener: (ctx, st) { bool collected = st.widgets.contains(model); String msg = @@ -79,9 +79,9 @@ class _WidgetDetailPageState extends State { _showToast(ctx, msg, collected); }, child: FeedbackWidget( - onPressed: () => BlocProvider.of(context) - .add(ToggleCollectEvent(id: model.id)), - child: BlocBuilder( + onPressed: () => BlocProvider.of(context) + .add(ToggleLikeWidgetEvent(id: model.id)), + child: BlocBuilder( builder: (_, s) => Padding( padding: const EdgeInsets.only(right: 20.0), child: Icon(