优化名称

This commit is contained in:
toly
2020-11-26 20:41:07 +08:00
parent d20f1d79fc
commit 8368d89f62
16 changed files with 67 additions and 84 deletions

View File

@@ -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';

View File

@@ -41,8 +41,7 @@ class CategoryBloc extends Bloc<CategoryEvent, CategoryState> {
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());

View File

@@ -33,6 +33,7 @@ class EventDeleteCategory extends CategoryEvent{
List<Object> get props => [id];
}
class EventAddCategory extends CategoryEvent{
final String name;
final String info;

View File

@@ -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<Object> get props => [collect];
//}
class EventSetCollectData extends CollectEvent {
List<Object> get props => [];
}
class ToggleCollectEvent extends CollectEvent {
final int id;
ToggleCollectEvent({this.id});
@override
// TODO: implement props
List<Object> get props => [id];
}
class LoadCollectEvent extends CollectEvent{
@override
List<Object> get props => [];
}

View File

@@ -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<CollectEvent, CollectState> {
class LikeWidgetBloc extends Bloc<LikeWidgetEvent, LikeWidgetState> {
final WidgetRepository repository;
CollectBloc({@required this.repository});
LikeWidgetBloc({@required this.repository});
@override
CollectState get initialState => CollectState(widgets: []); //
LikeWidgetState get initialState => LikeWidgetState(widgets: []); //
@override
Stream<CollectState> mapEventToState(
CollectEvent event,
Stream<LikeWidgetState> 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);
}
}
}

View File

@@ -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<Object> get props => [];
}
class ToggleLikeWidgetEvent extends LikeWidgetEvent {
final int id;
ToggleLikeWidgetEvent({this.id});
@override
// TODO: implement props
List<Object> get props => [id];
}
class LoadCollectEvent extends LikeWidgetEvent {
@override
List<Object> get props => [];
}

View File

@@ -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<WidgetModel> widgets;
CollectState({this.widgets});
LikeWidgetState({this.widgets});
@override
// TODO: implement props

View File

@@ -46,8 +46,8 @@ class _BlocWrapperState extends State<BlocWrapper> {
BlocProvider<CategoryBloc>(
create: (_) => categoryBloc..add(EventLoadCategory())),
BlocProvider<CollectBloc>(
create: (_) => CollectBloc(repository: repository)
BlocProvider<LikeWidgetBloc>(
create: (_) => LikeWidgetBloc(repository: repository)
..add(EventSetCollectData())),
BlocProvider<CategoryWidgetBloc>(

View File

@@ -89,7 +89,7 @@ class _UnitNavigationState extends State<UnitNavigation> {
_controller.animateToPage(index,
duration: const Duration(milliseconds: 200), curve: Curves.linear);
if (index == 1) {
BlocProvider.of<CollectBloc>(context).add(EventSetCollectData());
BlocProvider.of<LikeWidgetBloc>(context).add(EventSetCollectData());
}
}
}

View File

@@ -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<CollectBloc, CollectState>(builder: (_, s) {
child: BlocBuilder<LikeWidgetBloc, LikeWidgetState>(builder: (_, s) {
bool show = s.widgets.contains(data);
return Opacity(
opacity: show ? 1.0 : 0.0,

View File

@@ -75,7 +75,7 @@ class SimpleWidgetListItem extends StatelessWidget {
return Positioned(
top: 0,
right: 40,
child: BlocBuilder<CollectBloc, CollectState>(builder: (_, s) {
child: BlocBuilder<LikeWidgetBloc, LikeWidgetState>(builder: (_, s) {
bool show = s.widgets.contains(data);
return Opacity(
opacity: show ? 1.0 : 0.0,

View File

@@ -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<CollectBloc, CollectState>(builder: (_, s) {
child: BlocBuilder<LikeWidgetBloc, LikeWidgetState>(builder: (_, s) {
bool show = s.widgets.contains(data);
return Opacity(
opacity: show ? 1.0 : 0.0,

View File

@@ -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'

View File

@@ -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<CollectPage>
final _tabs = [
'收藏集录',
'默认收藏',
'珍藏组件',
];
@override
@@ -44,7 +44,7 @@ class _CollectPageState extends State<CollectPage>
body: TabBarView(
children: <Widget>[
CategoryPage(),
DefaultCollectPage(),
LikeWidgetPage(),
],
),
),

View File

@@ -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<CollectBloc, CollectState>(
return BlocBuilder<LikeWidgetBloc, LikeWidgetState>(
builder: (ctx, state) {
return CustomScrollView(
slivers: <Widget>[
@@ -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<CollectBloc>(context)
.add(ToggleCollectEvent(id: model.id));
BlocProvider.of<LikeWidgetBloc>(context)
.add(ToggleLikeWidgetEvent(id: model.id));
_toDetailPage(BuildContext context, WidgetModel model) {
BlocProvider.of<DetailBloc>(context).add(FetchWidgetDetail(model));

View File

@@ -71,7 +71,7 @@ class _WidgetDetailPageState extends State<WidgetDetailPage> {
Widget _buildCollectButton(WidgetModel model, BuildContext context) {
//监听 CollectBloc 伺机弹出toast
return BlocListener<CollectBloc, CollectState>(
return BlocListener<LikeWidgetBloc, LikeWidgetState>(
listener: (ctx, st) {
bool collected = st.widgets.contains(model);
String msg =
@@ -79,9 +79,9 @@ class _WidgetDetailPageState extends State<WidgetDetailPage> {
_showToast(ctx, msg, collected);
},
child: FeedbackWidget(
onPressed: () => BlocProvider.of<CollectBloc>(context)
.add(ToggleCollectEvent(id: model.id)),
child: BlocBuilder<CollectBloc, CollectState>(
onPressed: () => BlocProvider.of<LikeWidgetBloc>(context)
.add(ToggleLikeWidgetEvent(id: model.id)),
child: BlocBuilder<LikeWidgetBloc, LikeWidgetState>(
builder: (_, s) => Padding(
padding: const EdgeInsets.only(right: 20.0),
child: Icon(