membership_offer_view.dart 3.17 KB
import 'package:doublefeel_flutter/core/theme/app_theme.dart';
import 'package:doublefeel_flutter/l10n/l10n_extensions.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

import '../../user_onboarding/widget/guide_common_scaffold.dart';
import '../../user_onboarding/widget/onboarding_common_widgets.dart';
import '../../user_onboarding/widget/onboarding_illustrations.dart';
import '../controllers/membership_offer_controller.dart';

class MembershipOfferView extends GetView<MembershipOfferController> {
  const MembershipOfferView({super.key});

  @override
  Widget build(BuildContext context) {
    final l10n = context.l10n;

    return GuideCommonScaffold(
      bottom: OnboardingBottomButton(
        label: l10n.continueButton,
        enabled: true,
        onPressed: controller.finish,
      ),
      child: SingleChildScrollView(
        physics: const ClampingScrollPhysics(),
        padding: EdgeInsets.fromLTRB(
          0,
          MediaQuery.paddingOf(context).top + 4,
          0,
          140,
        ),
        child: Column(
          children: [
            Padding(
              padding: const EdgeInsets.symmetric(horizontal: 16),
              child: Column(
                children: [
                  OnboardingTitleText(l10n.onboardingMemberTitle),
                  const SizedBox(height: 12),
                  OnboardingBodyText(
                    l10n.onboardingMemberBody,
                    fontSize: 14,
                  ),
                ],
              ),
            ),
            const SizedBox(height: 12),
            const GiftIllustration(),
            const SizedBox(height: 4),
            Text(
              l10n.onboardingMemberOriginalPrice,
              textAlign: TextAlign.center,
              style: const TextStyle(
                color: Color(0xFFB0B0B6),
                fontSize: 16,
                decoration: TextDecoration.lineThrough,
                decorationColor: Color(0xFFB0B0B6),
                letterSpacing: 0,
              ),
            ),
            const SizedBox(height: 6),
            Text(
              l10n.onboardingMemberCurrentPrice,
              textAlign: TextAlign.center,
              style: TextStyle(
                color: context.colors.primary,
                fontSize: 28,
                fontWeight: FontWeight.w600,
                letterSpacing: 0,
              ),
            ),
            const SizedBox(height: 6),
            Text(
              l10n.onboardingMemberMonthlyPrice,
              textAlign: TextAlign.center,
              style: const TextStyle(
                color: Color(0xFFB0B0B6),
                fontSize: 12,
                letterSpacing: 0,
              ),
            ),
            const SizedBox(height: 70),
            Text(
              l10n.onboardingMemberAllOptions,
              textAlign: TextAlign.center,
              style: TextStyle(
                color: context.colors.textPrimary,
                fontSize: 12,
                decoration: TextDecoration.underline,
                decorationColor: context.colors.textPrimary,
                letterSpacing: 0,
              ),
            ),
          ],
        ),
      ),
    );
  }
}