Untitled

mail@pastecode.io avatar
unknown
dart
2 years ago
5.0 kB
1
Indexable
Never
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:iketfaa_delivery/App/Common/Modules/MyProfile/controller/my_profile_controller.dart';
import 'package:iketfaa_delivery/App/Common/Utilities/Constants/AppColors.dart';
import 'package:iketfaa_delivery/App/Freelance/Models/Main/UserPostItem.dart';

class MyProfileView extends GetView<MyProfileController> {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      initialIndex: 0,
      length: 2,
      child: Scaffold(
        backgroundColor: AppColors.backgroundColor,
        body: NotificationListener<ScrollNotification>(
          onNotification: (ScrollNotification scrollInfo) {
            if (!controller.isLoading.value &&
                scrollInfo.metrics.pixels ==
                    scrollInfo.metrics.maxScrollExtent &&
                controller.notCached.value) {
              controller.isLoading.value = true;

              Future.delayed(const Duration(milliseconds: 100), () async {
                List<UserPostItem> list = <UserPostItem>[];
                list = await controller.authManager.freelanceAPI
                    .getUserNext12Posts(controller.postsPageIndex.value);
                controller.isLoading.value = false;

                if (list.length != 0) {
                  controller.postsPageIndex.value += 1;
                  controller.userPosts.addAll(list);
                } else {
                  controller.notCached.value = false;
                  controller.postsPageIndex.value = 2;
                }
              });

              return true;
            }

            return false;
          },
          child: ListView(
            padding: EdgeInsets.zero,
            children: [
              //MyProfileHeader(),
              // TabBar(
              //   isScrollable: false,
              //   indicatorColor: AppColors.primary,
              //   labelColor: AppColors.black,
              //   labelStyle: Get.textTheme.headline6!
              //       .copyWith(fontWeight: FontWeight.w500),
              //   tabs: [
              //     Tab(
              //       text: 'posts'.tr,
              //     ),
              //     Tab(text: 'videos'.tr),
              //   ],
              //   controller: controller.tabController.value,
              //   onTap: (index) {
              //     controller.tabIndex.value = index;
              //   },
              // ),
              // Obx(
              //   () => controller.tabIndex.value == 0
              //       ? controller.userPosts.isEmpty
              //           ? Column(
              //               crossAxisAlignment: CrossAxisAlignment.center,
              //               mainAxisAlignment: MainAxisAlignment.center,
              //               children: [
              //                 Center(
              //                   child: Text(
              //                     "You don't have any posts yet".tr,
              //                     style: Get.textTheme.headline5,
              //                   ),
              //                 ),
              //               ],
              //             )
              //           : GridView.builder(
              //               shrinkWrap: true,
              //               scrollDirection: Axis.vertical,
              //               padding: EdgeInsets.zero,
              //               physics: const NeverScrollableScrollPhysics(),
              //               addAutomaticKeepAlives: true,
              //               addRepaintBoundaries: false,
              //               gridDelegate:
              //                   const SliverGridDelegateWithFixedCrossAxisCount(
              //                 crossAxisCount: 3,
              //               ),
              //               cacheExtent: Get.width * 0.25,
              //               itemCount: controller.userPosts.length,
              //               itemBuilder: (context, indexPath) {
              //                 return PostItemWidget(
              //                   postItem: controller.userPosts[indexPath],
              //                 );
              //               },
              //             )
              //       : const Center(
              //           child: Text('Qanati Videos'),
              //         ),
              // ),

              Visibility(
                visible: controller.notCached.value,
                child: Container(
                  margin: const EdgeInsets.only(top: 10.0, bottom: 10.0),
                  width: Get.width,
                  height: 30.0,
                  child: Visibility(
                      visible: controller.isLoading.value,
                      child: const CupertinoActivityIndicator()),
                ),
              )
            ],
          ),
        ),
      ),
    );
  }
}