buildAddresses method

dynamic buildAddresses(
  1. dynamic context,
  2. dynamic addresses
)

Implementation

Widget buildAddresses(BuildContext context, EmailAddresses addresses) {
  if (addresses.unconfirmed.isNotEmpty) {
    final slivers = [
      SliverToBoxAdapter(
        child: Padding(
          padding: const EdgeInsetsDirectional.symmetric(
            horizontal: 20,
            vertical: 15,
          ),
          child: Row(
            children: [
              const Padding(
                padding: EdgeInsets.only(right: 10),
                child: Icon(Atlas.envelope_question_thin),
              ),
              Text(
                L10n.of(context).awaitingConfirmation,
                style: Theme.of(context).textTheme.headlineSmall,
              ),
            ],
          ),
        ),
      ),
      SliverToBoxAdapter(
        child: Padding(
          padding: const EdgeInsetsDirectional.symmetric(
            horizontal: 20,
            vertical: 15,
          ),
          child: Text(
            L10n.of(context).awaitingConfirmationDescription,
            style: Theme.of(context).textTheme.bodyMedium,
          ),
        ),
      ),
      SliverList.builder(
        itemBuilder: (context, index) => EmailAddressCard(
          emailAddress: addresses.unconfirmed[index],
          isConfirmed: false,
        ),
        itemCount: addresses.unconfirmed.length,
      ),
    ];
    if (addresses.confirmed.isNotEmpty) {
      slivers.addAll([
        SliverToBoxAdapter(
          child: Padding(
            padding: const EdgeInsetsDirectional.symmetric(
              horizontal: 20,
              vertical: 15,
            ),
            child: Text(
              L10n.of(context).confirmedEmailAddresses,
              style: Theme.of(context).textTheme.headlineSmall,
            ),
          ),
        ),
        SliverList.builder(
          itemBuilder: (context, index) => EmailAddressCard(
            emailAddress: addresses.confirmed[index],
            isConfirmed: true,
          ),
          itemCount: addresses.confirmed.length,
        ),
      ]);
    }
    return CustomScrollView(slivers: slivers);
  }

  return CustomScrollView(
    slivers: [
      SliverToBoxAdapter(
        child: Padding(
          padding: const EdgeInsetsDirectional.symmetric(
            horizontal: 20,
            vertical: 15,
          ),
          child: Text(
            L10n.of(context).confirmedEmailAddressesDescription,
            style: Theme.of(context).textTheme.bodyMedium,
          ),
        ),
      ),
      SliverList.builder(
        itemBuilder: (context, index) => EmailAddressCard(
          emailAddress: addresses.confirmed[index],
          isConfirmed: true,
        ),
        itemCount: addresses.confirmed.length,
      ),
    ],
  );
}