This commit is contained in:
2025-12-30 23:20:50 -06:00
parent 9f8eab4a31
commit ec923c906e
26 changed files with 2234 additions and 53 deletions

View File

@@ -0,0 +1,204 @@
import 'package:flutter/material.dart';
import 'package:christian_period_tracker/models/scripture.dart';
class HusbandLearnScreen extends StatelessWidget {
const HusbandLearnScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Reproductive Health Education'),
actions: [
IconButton(
icon: const Icon(Icons.bookmark),
onPressed: () {},
),
],
),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildHealthTipsSection(context),
const SizedBox(height: 24),
_buildDiseasePreventionSection(context),
const SizedBox(height: 24),
_buildPracticalAdviceSection(context),
],
),
),
),
);
}
Widget _buildHealthTipsSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Reproductive Health Tips',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTipCard(
context,
title: 'Understanding Female Cycles',
content: 'Learn about the different phases of your wife\'s menstrual cycle and how they affect her health.',
icon: Icons.calendar_month,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Supportive Role',
content: 'Be supportive during different phases, understanding when she may need more emotional support or rest.',
icon: Icons.support_agent,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Nutritional Support',
content: 'Understand how nutrition affects reproductive health and discuss dietary choices together.',
icon: Icons.food_bank,
),
],
),
),
),
],
);
}
Widget _buildDiseasePreventionSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Disease Prevention Between Partners',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTipCard(
context,
title: 'Safe Sexual Practices',
content: 'Use protection consistently to prevent sexually transmitted infections and maintain mutual health.',
icon: Icons.protect,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Regular Testing',
content: 'Schedule regular STI screenings together with your partner for early detection and treatment.',
icon: Icons.medical_information,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Open Communication',
content: 'Discuss health concerns openly to ensure both partners understand each other\'s needs and maintain trust.',
icon: Icons.chat,
),
],
),
),
),
],
);
}
Widget _buildPracticalAdviceSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Practical Advice for Partnership',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTipCard(
context,
title: 'Educate Yourself',
content: 'Take the initiative to learn about reproductive health and partner needs.',
icon: Icons.school,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Active Listening',
content: 'Listen attentively when your wife discusses her health concerns or feelings.',
icon: Icons.mic_none,
),
],
),
),
),
],
);
}
Widget _buildTipCard(BuildContext context, {required String title, required String content, required IconData icon}) {
return Card(
elevation: 1,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Row(
children: [
Container(
width: 40,
height: 40,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.primaryContainer.withOpacity(0.2),
shape: BoxShape.circle,
),
child: Icon(icon, size: 24, color: Theme.of(context).colorScheme.primary),
),
const SizedBox(width: 16),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
),
const SizedBox(height: 4),
Text(
content,
style: Theme.of(context).textTheme.bodyMedium,
),
],
),
),
],
),
),
);
}
}

View File

@@ -0,0 +1,201 @@
import 'package:flutter/material.dart';
import 'package:christian_period_tracker/models/scripture.dart';
class WifeLearnScreen extends StatelessWidget {
const WifeLearnScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Reproductive Health Education'),
actions: [
IconButton(
icon: const Icon(Icons.bookmark),
onPressed: () {},
),
],
),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildHealthTipsSection(context),
const SizedBox(height: 24),
_buildDiseasePreventionSection(context),
const SizedBox(height: 24),
_buildPracticalAdviceSection(context),
],
),
),
),
);
}
Widget _buildHealthTipsSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Reproductive Health Tips',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTipCard(
context,
title: 'Regular Medical Check-ups',
content: 'Schedule regular gynecological check-ups to monitor your reproductive health and catch any potential issues early.',
icon: Icons.medical_services,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Healthy Lifestyle',
content: 'Maintain a balanced diet, exercise regularly, and get adequate sleep to support overall reproductive wellness.',
icon: Icons.healing,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Stress Management',
content: 'Chronic stress can affect menstrual cycles and fertility. Practice mindfulness techniques and seek support when needed.',
icon: Icons.spa,
),
],
),
),
),
],
);
}
Widget _buildDiseasePreventionSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Disease Prevention Between Partners',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildTipCard(
context,
title: 'Safe Sexual Practices',
content: 'Use protection consistently to prevent sexually transmitted infections and maintain mutual health.',
icon: Icons.protect,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Regular Testing',
content: 'Schedule regular STI screenings together with your partner for early detection and treatment.',
icon: Icons.medical_information,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Open Communication',
content: 'Discuss health concerns openly to ensure both partners understand each other\'s needs and maintain trust.',
icon: Icons.chat,
),
],
),
),
),
],
);
}
Widget _buildPracticalAdviceSection(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Practical Advice for Partnership',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 16),
Card(
elevation: 2,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
child: Padding(
padding: const EdgeInsets.all(16.0),
children: [
_buildTipCard(
context,
title: 'Support System',
content: 'Build a support system that includes both your partner and trusted healthcare providers.',
icon: Icons.supervisor_account,
),
const SizedBox(height: 16),
_buildTipCard(
context,
title: 'Educate Together',
content: 'Both partners should educate themselves about reproductive health to make informed decisions together.',
icon: Icons.school,
),
],
),
),
],
);
}
Widget _buildTipCard(BuildContext context, {required String title, required String content, required IconData icon}) {
return Card(
elevation: 1,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Row(
children: [
Container(
width: 40,
height: 40,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.primaryContainer.withOpacity(0.2),
shape: BoxShape.circle,
),
child: Icon(icon, size: 24, color: Theme.of(context).colorScheme.primary),
),
const SizedBox(width: 16),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: Theme.of(context).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
),
const SizedBox(height: 4),
Text(
content,
style: Theme.of(context).textTheme.bodyMedium,
),
],
),
),
],
),
),
);
}
}