import 'package:PiliPlus/http/live.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models/common/live_search_type.dart'; import 'package:PiliPlus/models/live/live_search/data.dart'; import 'package:PiliPlus/pages/common/common_list_controller.dart'; import 'package:PiliPlus/pages/live_search/controller.dart'; import 'package:PiliPlus/utils/storage.dart'; class LiveSearchChildController extends CommonListController { LiveSearchChildController(this.controller, this.searchType); final isLogin = Accounts.main.isLogin; final LiveSearchController controller; final LiveSearchType searchType; @override void checkIsEnd(int length) { switch (searchType) { case LiveSearchType.room: if (controller.counts.first != -1 && length >= controller.counts.first) { isEnd = true; } break; case LiveSearchType.user: if (controller.counts[1] != -1 && length >= controller.counts[1]) { isEnd = true; } break; } } @override List? getDataList(response) { switch (searchType) { case LiveSearchType.room: controller.counts[searchType.index] = response.room?.totalRoom ?? 0; return response.room?.list; case LiveSearchType.user: controller.counts[searchType.index] = response.user?.totalUser ?? 0; return response.user?.list; } } @override Future> customGetData() { return LiveHttp.liveSearch( isLogin: isLogin, page: currentPage, keyword: controller.editingController.text, type: searchType, ); } }