import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../../core/design/tokens.dart'; import '../../../core/design/tripz_colors.dart'; import '../../../core/l10n/l10n.dart'; import '../../../core/ui/tripz_button.dart'; import '../../../core/ui/tripz_scaffold.dart'; import '../cubit/login_cubit.dart'; import '../cubit/login_state.dart'; import '../../../core/ui/form_header.dart'; /// البوابة الأولى: شاشة كاملة لا حوار، وزر متابعة **معطّل حتى يُؤشَّر** /// (docs/39 §2). تُحفظ الموافقة فلا تتكرر. class AgreementView extends StatelessWidget { const AgreementView({super.key}); @override Widget build(BuildContext context) { final l10n = context.l10n; return BlocBuilder( buildWhen: (p, n) => p.agreed != n.agreed, builder: (context, state) { final cubit = context.read(); return TripzScaffold( showAppBar: false, bottomAction: TripzButton.primary( label: l10n.agreementAccept, onPressed: state.agreed ? cubit.acceptAgreement : null, ), child: ListView( children: [ const SizedBox(height: Space.xl), FormHeader( icon: Icons.policy_outlined, title: l10n.agreementTitle, lead: l10n.agreementLead, ), const SizedBox(height: Space.lg), CheckboxListTile( value: state.agreed, onChanged: (v) => cubit.toggleAgreement(v ?? false), contentPadding: EdgeInsets.zero, controlAffinity: ListTileControlAffinity.leading, title: Text( l10n.agreementCheckbox, style: context.texts.bodyMedium, ), ), ], ), ); }, ); } }