import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:prosappco/src/components/pop_appbar.dart'; import 'package:prosappco/src/models/setting_model.dart'; import 'package:prosappco/src/presentation/screens/web_view.dart'; import 'package:url_launcher/url_launcher.dart'; class AboutScreen extends StatefulWidget { const AboutScreen({super.key}); @override State createState() => _AboutScreenState(); } class _AboutScreenState extends State { SettingModel? settings; @override void initState() { super.initState(); if (settings == null) { SettingModel.getSettings().then( (SettingModel value) => setState(() { settings = value; }), ); } } void _launchURL(String url) async { if (await canLaunch(url)) { await launch(url, forceSafariVC: false, forceWebView: false); } else { throw 'No se pudo abrir el enlace $url'; } } @override Widget build(BuildContext context) { return Scaffold( appBar: PopAppbar( onPressed: () { Navigator.pop(context); }, label: 'Acerca de la aplicación'), body: ListView( children: [ ListTile( onTap: () { if (kIsWeb) { _launchURL(settings?.proliticasPrivacidad ?? ''); } else { Navigator.push( context, CupertinoPageRoute( builder: (BuildContext context) { return WebViewScreen( label: 'Políticas de privacidad', link: settings?.proliticasPrivacidad ?? '', ); }, ), ); } }, title: const Text('Políticas de privacidad'), trailing: const Icon(Icons.keyboard_arrow_right, color: Colors.black), ), ListTile( onTap: () { if (kIsWeb) { _launchURL(settings?.terminosCondiciones ?? ''); } else { Navigator.push( context, CupertinoPageRoute( builder: (BuildContext context) { return WebViewScreen( label: 'Términos y condiciones', link: settings?.terminosCondiciones ?? '', ); }, ), ); } }, title: const Text('Términos y condiciones'), trailing: const Icon(Icons.keyboard_arrow_right, color: Colors.black), ), ListTile( title: const Text('Versión de la aplicación'), subtitle: Text(settings?.version ?? ''), ), ], ), ); } }