Untitled

 avatar
unknown
plain_text
6 months ago
7.7 kB
2
Indexable
import 'package:Buildeffective/src/screens/setting/component/no_contact_component.dart';
import 'package:Buildeffective/src/screens/setting/model/google_contact_response.dart';
import 'package:Buildeffective/src/screens/setting/store/my_contact_store.dart';
import 'package:Buildeffective/src/screens/splash/splash_screen.dart';
import 'package:Buildeffective/src/utils/comman_export.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart';
import 'package:nb_utils/nb_utils.dart';

class GoogleContactComponent extends StatelessWidget {
  MyContactStore myContactStore = MyContactStore();

  GoogleContactComponent({Key? key, required this.myContactStore}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Observer(builder: (context) {
      return myContactStore.getGoogleContactSearchResult(list: myContactStore.connection).isEmpty
          ? NoContactComponent(
              isFromGoogleContact: true,
            )
          : ListView.separated(
              padding: EdgeInsets.only(top: 6, bottom: 10),
              shrinkWrap: true,
              itemCount: myContactStore.getGoogleContactSearchResult(list: myContactStore.connection).asObservable().length,
              itemBuilder: (BuildContext context, int index) {
                Connections data = myContactStore.getGoogleContactSearchResult(list: myContactStore.connection).asObservable()[index];
                return GestureDetector(
                  onTap: () {
                    data.isSelected = !data.isSelected;
                    if (myContactStore.checkedStates.any(
                      (element) => element.resourceName == data.resourceName,
                    )) {
                      myContactStore.checkedStates.removeWhere(
                        (element) => element.resourceName == data.resourceName,
                      );
                    } else {
                      myContactStore.checkedStates.add(data);
                    }
                  },
                  child: Container(
                    decoration: BoxDecoration(color: Colors.white, boxShadow: [
                      BoxShadow(
                        color: Color.fromRGBO(0, 0, 0, 0.15),
                        spreadRadius: 0,
                        blurRadius: 4,
                        offset: Offset(0, 5),
                      ),
                    ]),
                    child: Padding(
                      padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
                      child: Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: [
                          Container(
                            height: 24.0,
                            width: 24.0,
                            child: Checkbox(
                              shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(3.0)),
                              side: BorderSide(color: BEColors.grey5Color, width: 2),
                              activeColor: BEColors.primaryColor,
                              splashRadius: 0,
                              checkColor: !data.isSelected ? BEColors.grey4Color : BEColors.white,
                              value: data.isSelected,
                              onChanged: (value) {
                                data.isSelected = !data.isSelected;
                                if (myContactStore.checkedStates.any(
                                  (element) => element.resourceName == data.resourceName,
                                )) {
                                  myContactStore.checkedStates.removeWhere(
                                    (element) => element.resourceName == data.resourceName,
                                  );
                                } else {
                                  myContactStore.checkedStates.add(data);
                                }
                              },
                            ),
                          ),
                          10.width,
                          Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              if (data.names != null) ...{
                                Text(
                                  "${data.names![0].displayName}",
                                  style: SplashScreen.isMobileDevice ? BETextStyles.H6StyleWithDarkBlueColor : BETextStyles.BodyStyle500With16WithDarkBlueColor,
                                )
                              },
                              if (data.emailAddresses != null) ...{SplashScreen.isMobileDevice ? 0.height : 6.height},
                              SplashScreen.isMobileDevice
                                  ? Column(
                                      crossAxisAlignment: CrossAxisAlignment.start,
                                      children: [
                                        if (data.emailAddresses != null) ...{
                                          6.height,
                                          Text(
                                            "${data.emailAddresses![0].value}",
                                            style: BETextStyles.InfoTextStyle13WitGgreyColor646464Color500,
                                          )
                                        },
                                        if (!data.phoneNumbers.isNullOrEmpty()) ...{
                                          6.height,
                                          Text(
                                            "${myContactStore.formatUSMobileNumber(data.phoneNumbers![0].value.validate(), displayName: data.names![0].displayName!)}",
                                            style: BETextStyles.InfoTextStyle13WitGgreyColor646464Color500,
                                          )
                                        }
                                      ],
                                    )
                                  : Row(
                                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                                      children: [
                                        if (data.emailAddresses != null) ...{
                                          Text(
                                            "${data.emailAddresses![0].value}",
                                            style: BETextStyles.InfoTextStyle13WitGgreyColor646464Color500,
                                          )
                                        },
                                        if (!data.phoneNumbers.isNullOrEmpty()) ...{
                                          Text(
                                            "${myContactStore.formatUSMobileNumber(data.phoneNumbers![0].value.validate(), displayName: data.names![0].displayName!)}",
                                            style: BETextStyles.InfoTextStyle13WitGgreyColor646464Color500,
                                          )
                                        }
                                      ],
                                    ),
                            ],
                          ).expand(),
                        ],
                      ),
                    ),
                  ),
                );
              },
              separatorBuilder: (BuildContext context, int index) {
                return Divider(
                  height: 0,
                );
              },
            );
    });
  }
}
Editor is loading...
Leave a Comment