Files
CheckTheethKids/lib/widgets/privacy_content.dart
Carlos Correia 9c21887fc7 CKT 1.0.1
2026-07-15 02:40:22 +01:00

81 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
const Color kPrivacyTeal = Color(0xFF2F9E94);
/// Um dos itens de consentimento mostrados no ecrã de privacidade. Itens
/// com [required] a false (ex.: recolha de dados técnicos de utilização)
/// não bloqueiam o avanço se não forem marcados.
class PrivacyConsentItem {
const PrivacyConsentItem({
required this.id,
required this.text,
this.required = true,
});
final String id;
final String text;
final bool required;
}
/// Texto fixo dos consentimentos de privacidade, mostrado no cadastro.
const List<PrivacyConsentItem> kPrivacyConsentItems = [
PrivacyConsentItem(
id: 'health_data',
text:
'Confirmo que sou encarregado(a) de educação ou responsável legal '
'da criança avaliada e concordo com o processamento dos dados de '
'saúde que introduzo na Check-Teeth Kids, exclusivamente para gerar '
'o resultado da triagem digital.',
),
PrivacyConsentItem(
id: 'privacy_policy',
text:
'Li e aceito os Termos e Condições apresentados anteriormente e as '
'condições de privacidade descritas nesta página.',
),
PrivacyConsentItem(
id: 'tracking',
text:
'Ajude-nos a melhorar a Check-Teeth Kids, autorizando a recolha de '
'dados técnicos de utilização.',
required: false,
),
];
/// Emblema circular + título "Política de Privacidade", reutilizado onde
/// este conteúdo for mostrado.
class PrivacyHeader extends StatelessWidget {
const PrivacyHeader({super.key});
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: 76,
height: 76,
decoration: BoxDecoration(
color: kPrivacyTeal.withValues(alpha: 0.12),
shape: BoxShape.circle,
),
child: const Icon(
Icons.privacy_tip_rounded,
color: kPrivacyTeal,
size: 36,
),
),
const SizedBox(height: 16),
const Text(
'Política de Privacidade',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w900,
color: Colors.black,
),
),
],
);
}
}