Skip to content

Commit

Permalink
feat: #35 5-10-2 pagination 적용및 로직 변경 함수명 변경
Browse files Browse the repository at this point in the history
index 1씩 변경 말고 param으로 전달된 index 값 이용
  • Loading branch information
kimwest00 committed Oct 17, 2023
1 parent 566ceed commit 67fc7ff
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 23 deletions.
22 changes: 15 additions & 7 deletions lib/modules/buring_match/controller/burning_match_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import 'package:match/model/match_pay/match_pay.dart';
import 'package:match/provider/api/flame_api.dart';

import '../../../provider/api/project_api.dart';
import '../../../provider/api/util/global_api_field.dart';
import '../../../util/const/global_mock_data.dart';
import '../../../util/const/style/global_logger.dart';

enum MATCH_STATUS {
//검색에서 접근
Expand All @@ -27,12 +29,18 @@ class BurningMatchController extends GetxController {
///* mapIndexed 사용불가로 index 대체 변수
RxList<MatchHistory> flameHistories = <MatchHistory>[].obs;

// Future<void> getMoreProject(int index) async {
// if (!DonationApi.getDonationHistoryIsLast) {
// matchHistories.addAll(
// await DonationApi.getDonationHistory(donationId: id, page: index));
// }
// }
///<h2> Listview builder에서 호출하는 pagination 추가 호출 함수 </h2>
///* 총 데이터 수와 비교하여, 페이지를 더 늘릴수있다면 api 호출, 그렇지 않다면 호출 X
Future<void> getMoreFlameHistory(int index) async {
logger.d(
"2: 총 페이지수 : ${FlameApi.detailFlameBottom.totalCnt ~/ PAGINATION_SIZE}, 불러오고자 하는 페이지: ${index}");
if (!(FlameApi.burningFlame.totalCnt ~/ PAGINATION_SIZE >=
index) &&
!FlameApi.burningFlame.isLast) {
FlameApi.burningFlame.currentpage = index;
flameHistories.addAll(await FlameApi.getFlameDetailBottomList(donationId: id,getMore: true));
}
}

@override
void onInit() async {
Expand All @@ -41,6 +49,6 @@ class BurningMatchController extends GetxController {
flameDetail.value =
await FlameApi.getDetailFlameTop(donationId: id) ?? tmpFlameDetail;
///*하단 데이터 init
flameHistories.assignAll( await FlameApi.getFlameDetailBottom(donationId: id));
flameHistories.assignAll( await FlameApi.getFlameDetailBottomList(donationId: id));
}
}
37 changes: 24 additions & 13 deletions lib/modules/buring_match/view/burning_match_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ import 'package:match/util/const/style/global_color.dart';
import 'package:match/util/const/style/global_text_styles.dart';
import 'package:timeline_tile_nic/timeline_tile.dart';

import '../../../provider/api/util/global_api_field.dart';
import '../../../util/components/global_app_bar.dart';
import '../../../util/const/global_variable.dart';
import '../../../util/const/style/global_logger.dart';

class BurningMatchScreen extends GetView<BurningMatchController> {
const BurningMatchScreen({super.key});
Expand All @@ -37,7 +39,7 @@ class BurningMatchScreen extends GetView<BurningMatchController> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width:255.w,
width: 255.w,
child: Text(
controller.flameDetail.value.inherenceName,
style: AppTextStyles.T1Bold18,
Expand Down Expand Up @@ -81,24 +83,33 @@ class BurningMatchScreen extends GetView<BurningMatchController> {

//매치 기록 제목
Padding(
padding: EdgeInsets.symmetric(vertical: 17.h).copyWith(bottom: 0.h),
padding: EdgeInsets.symmetric(vertical: 17.h)
.copyWith(bottom: 0.h),
child: Text(
"매치 기록",
style: AppTextStyles.T1Bold15,
),
),
ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: controller.flameHistories.length,
itemBuilder: (context, index) {
final history = controller.flameHistories[index];
return MatchRecord(
title: history.histories,
date: history.historyDate,
imgList: history.donationHistoryImages ?? []);
},
),
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: controller.flameHistories.length,
itemBuilder: (context, index) {
logger.d(index);
if (index % (PAGINATION_SIZE - 1) == 0 && index != 0) {
logger.d("1. getMoreFlame 호출!");
Future.wait({
controller.getMoreFlameHistory(
index ~/ (PAGINATION_SIZE - 1))
});
}
final history = controller.flameHistories[index];
return MatchRecord(
title: history.histories,
date: history.historyDate,
imgList: history.donationHistoryImages ?? []);
},
),
// 매치기록
],
),
Expand Down
5 changes: 3 additions & 2 deletions lib/modules/home/controller/home_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@ class HomeController extends GetxController {
///* 총 데이터 수와 비교하여, 페이지를 더 늘릴수있다면 api 호출, 그렇지 않다면 호출 X
Future<void> getMoreFlame(int index) async {
logger.d(
"2: 총 페이지수 : ${FlameApi.burningFlame.totalCnt ~/ PAGINATION_SIZE}, 불러오고자 하는 페이지: ${FlameApi.burningFlame.currentpage + 1}");
"2: 총 페이지수 : ${FlameApi.burningFlame.totalCnt ~/ PAGINATION_SIZE}, 불러오고자 하는 페이지: ${index}");
if (!(FlameApi.burningFlame.totalCnt ~/ PAGINATION_SIZE >=
FlameApi.burningFlame.currentpage + 1) &&
!FlameApi.burningFlame.isLast) {
FlameApi.burningFlame.currentpage++;
FlameApi.burningFlame.currentpage = index;

flameList.addAll(await FlameApi.getBurningFlameList(getMore: true));
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/provider/api/flame_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class FlameApi {

///<h2>5-10-2 API | 상세 - 불타는 매치 상세 - 하단조회</h2>
///* pagination
static Future<List<MatchHistory>> getFlameDetailBottom(
static Future<List<MatchHistory>> getFlameDetailBottomList(
{required int donationId, bool getMore = false}) async {
try {
logger.d("api호출 성공");
Expand Down

0 comments on commit 67fc7ff

Please sign in to comment.