You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
app/lib/pages/upgradeCard/upgrade_child_invite_page.dart

120 lines
3.4 KiB

/*
* ====================================================
* package :
* author : Created by nansi.
* time : 2019/6/12 2:17 PM
* remark :
* ====================================================
*/
import 'package:flutter/material.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/models/invite_list_model.dart';
import 'package:recook/pages/user/invite/invite_list_contact.dart';
import 'package:recook/pages/user/invite/invite_list_presenter_impl.dart';
import 'package:recook/pages/user/invite/item_invite_detail_list.dart';
import 'package:recook/utils/mvp.dart';
import 'package:recook/widgets/mvp_list_view/mvp_list_view.dart';
import 'package:recook/widgets/mvp_list_view/mvp_list_view_contact.dart';
import 'package:recook/widgets/no_data_view.dart';
class UpgradeChildInvitePageController {
Function(String searchText) refresh;
}
class UpgradeChildInvitePage extends StatefulWidget {
final int userId;
final String searchText;
final UpgradeChildInvitePageController controller;
final Function(InviteModel) itemClick;
const UpgradeChildInvitePage({Key key, this.userId,this.searchText = "", this.controller, this.itemClick, }) : super(key: key);
// static setArguments(bool isOwner) {
// return isOwner;
// }
@override
State<StatefulWidget> createState() {
return _UpgradeChildInvitePage();
}
}
class _UpgradeChildInvitePage extends BaseStoreState<UpgradeChildInvitePage>
with MvpListViewDelegate<InviteModel> implements InviteListViewI{
InviteListPresenterImpl _presenter;
MvpListViewController<InviteModel> _controller;
String _searchText;
@override
MvpListViewPresenterI<InviteModel, MvpView, MvpModel> getPresenter() {
return _presenter;
}
@override
void initState() {
super.initState();
_presenter = InviteListPresenterImpl();
_presenter.attach(this);
_controller = MvpListViewController();
_searchText = TextUtils.isEmpty(widget.searchText)?"":widget.searchText;
widget.controller.refresh = (searchText){
_searchText = searchText;
_controller.requestRefresh();
setState(() {});
};
}
@override
Widget buildContext(BuildContext context, {store}) {
return Container(
color: AppColor.frenchColor,
child: MvpListView<InviteModel>(
autoRefresh: true,
delegate: this,
controller: _controller,
refreshCallback: () {
// _presenter.fetch();
_presenter.getInviteList(widget.userId, 0, _searchText);
},
loadMoreCallback: (page) {
_presenter.getInviteList(widget.userId, page, _searchText);
// _presenter.loadMore();
},
noDataView: NoDataView(title: TextUtils.isEmpty(_searchText)?"还没有邀请任何人喔~":"搜索不到该邀请用户...", height: 500,),
itemBuilder: (_,index){
return GestureDetector(
onTap: (){
if (widget.itemClick!=null) {
widget.itemClick(_controller.getData()[index]);
}
},
child: InviteDetailListItem(model: _controller.getData()[index], isUpgrade: true,),
);
},
),
);
}
@override
bool get wantKeepAlive => true;
@override
void onDetach() {
}
@override
void onAttach() {
}
@override
failure(String msg){
GSDialog.of(context).showError(globalContext, msg);
}
}