Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
2.6 kB
1
Indexable
Never
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:sanad_flutter/core/config/sanad_colors.dart';
import 'package:sanad_flutter/core/language_cubit/language_cubit.dart';
import 'package:sanad_flutter/core/widgets/intl_phone_number_input/src/models/country_list.dart';

import '../../../../../../core/config/app_localization.dart';
import '../../../../../../core/widgets/custom_drop_down_menu_with_screach.dart';
import '../bloc/residency_application_bloc.dart';

List<String> getNationalities() {
  final countries = Countries.countryList;
  final nationalitySet = <String>[];

  for (final country in countries) {
    final nationality =
        country['nameTranslations'][LanguageCubit.isArabic ? 'ar' : 'en'];
    if (nationality.toString().trim() != 'الأردن' &&
        nationality.toString().toLowerCase().trim() != 'jordan') {
      if (nationality != null) {
        nationalitySet.add(nationality);
      }
    }
  }

  return nationalitySet;
}

class NationalitiesWidget extends StatefulWidget {
  const NationalitiesWidget({super.key});

  @override
  _NationalitiesWidgetState createState() => _NationalitiesWidgetState();
}

class _NationalitiesWidgetState extends State<NationalitiesWidget> {
  String? selectedNationality;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    var locale = AppLocalization.of(context);
    return Column(
      children: [
        CustomDropDownMenuWithSearch<String>(
          color: selectColor(context, Colors.transparent, textFieldDark),
          borderColor: selectColor(context, Colors.black54, Colors.white54),
          itemAsString: (item) {
            selectedNationality = item.toString();
            return selectedNationality!;
          },
          items: getNationalities(),
          hint:
              "${locale.getTranslatedValues('update_field_label_Nationality')}",
          selectedItem: selectedNationality,
          textStyle: Theme.of(context)
              .textTheme
              .bodyText2!
              .copyWith(color: Colors.black),
          margin: EdgeInsets.symmetric(horizontal: 0.025.sw, vertical: 8),
          onChanged: (newValue) {
            setState(() {
              selectedNationality = newValue!.toString();
              ResidencyApplicationBloc.get(context)
                  .selectedDropdownNationality = selectedNationality!;
            });
          },
        ),
      ],
    );
  }
}