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.
120 lines
3.4 KiB
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);
|
|
}
|
|
}
|
|
|