From ef9fba11c81ae49511e79beeb4d3f3e9d50aeb1e Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Wed, 20 Mar 2024 17:40:51 +0100 Subject: [PATCH] Delete login page and add function for http requet --- motula_translate_app/lib/model/word.dart | 12 +++ .../screens/home/components/course_card.dart | 77 ------------------- .../components/secondary_course_card.dart | 59 -------------- .../screens/home/components/words_screen.dart | 52 +++++++++++++ .../lib/screens/home/home_screen.dart | 37 +++++---- .../lib/screens/onboding/onboding_screen.dart | 20 +++-- 6 files changed, 102 insertions(+), 155 deletions(-) create mode 100644 motula_translate_app/lib/model/word.dart delete mode 100644 motula_translate_app/lib/screens/home/components/course_card.dart delete mode 100644 motula_translate_app/lib/screens/home/components/secondary_course_card.dart create mode 100644 motula_translate_app/lib/screens/home/components/words_screen.dart diff --git a/motula_translate_app/lib/model/word.dart b/motula_translate_app/lib/model/word.dart new file mode 100644 index 0000000..94bcafe --- /dev/null +++ b/motula_translate_app/lib/model/word.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class Word { + bool status; + String name; + String translation; + + Word.fromJson(Map json): + status = json['status'], + name = json['name'], + translation = json['translation']; +} \ No newline at end of file diff --git a/motula_translate_app/lib/screens/home/components/course_card.dart b/motula_translate_app/lib/screens/home/components/course_card.dart deleted file mode 100644 index a459eb4..0000000 --- a/motula_translate_app/lib/screens/home/components/course_card.dart +++ /dev/null @@ -1,77 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; - -class CourseCard extends StatelessWidget { - const CourseCard({ - Key? key, - required this.title, - this.color = const Color(0xFF7553F6), - this.iconSrc = "assets/icons/ios.svg", - }) : super(key: key); - - final String title, iconSrc; - final Color color; - - @override - Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), - height: 280, - width: 260, - decoration: BoxDecoration( - color: color, - borderRadius: const BorderRadius.all(Radius.circular(30)), - ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.only(top: 6, right: 8), - child: Column( - children: [ - Text( - title, - style: Theme.of(context).textTheme.titleLarge!.copyWith( - color: Colors.white, fontWeight: FontWeight.w600), - ), - const Padding( - padding: EdgeInsets.only(top: 12, bottom: 8), - child: Text( - "Build and animate an iOS app from scratch", - style: TextStyle( - color: Colors.white38, - ), - ), - ), - const Text( - "61 SECTIONS - 11 HOURS", - style: TextStyle( - color: Colors.white38, - ), - ), - const Spacer(), - Row( - children: List.generate( - 3, - (index) => Transform.translate( - offset: Offset((-10 * index).toDouble(), 0), - child: CircleAvatar( - radius: 20, - backgroundImage: AssetImage( - "assets/avaters/Avatar ${index + 1}.jpg", - ), - ), - ), - ), - ), - ], - ), - ), - ), - SvgPicture.asset(iconSrc), - ], - ), - ); - } -} diff --git a/motula_translate_app/lib/screens/home/components/secondary_course_card.dart b/motula_translate_app/lib/screens/home/components/secondary_course_card.dart deleted file mode 100644 index 4751a92..0000000 --- a/motula_translate_app/lib/screens/home/components/secondary_course_card.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; - -class SecondaryCourseCard extends StatelessWidget { - const SecondaryCourseCard({ - Key? key, - required this.title, - this.iconsSrc = "assets/icons/ios.svg", - this.colorl = const Color(0xFF7553F6), - }) : super(key: key); - - final String title, iconsSrc; - final Color colorl; - - @override - Widget build(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 20), - decoration: BoxDecoration( - color: colorl, - borderRadius: const BorderRadius.all(Radius.circular(20))), - child: Row( - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: Theme.of(context).textTheme.headlineSmall!.copyWith( - color: Colors.white, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: 4), - const Text( - "Watch video - 15 mins", - style: TextStyle( - color: Colors.white60, - fontSize: 16, - ), - ) - ], - ), - ), - const SizedBox( - height: 40, - child: VerticalDivider( - // thickness: 5, - color: Colors.white70, - ), - ), - const SizedBox(width: 8), - SvgPicture.asset(iconsSrc) - ], - ), - ); - } -} diff --git a/motula_translate_app/lib/screens/home/components/words_screen.dart b/motula_translate_app/lib/screens/home/components/words_screen.dart new file mode 100644 index 0000000..96ff6fa --- /dev/null +++ b/motula_translate_app/lib/screens/home/components/words_screen.dart @@ -0,0 +1,52 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'dart:convert'; + +import '../../../model/word.dart'; + + +class WordsScreen extends StatefulWidget { + const WordsScreen({super.key}); + + @override + State createState() => _WordsScreenState(); +} + +class _WordsScreenState extends State { + Future fetchWord() async { + final response = await http.get( + Uri.parse("https://5ddc-37-101-56-133.ngrok-free.app/api/words/tasto")); + + if (response.statusCode == 200) { + return Word.fromJson(jsonDecode(response.body)); + } else { + throw Exception('Failed to fetch Word'); + } + } + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: fetchWord(), + builder: (context, snapshot) { + if (snapshot.hasData) { + // Display the fetched joke when data is available + return Center(child: Text( + snapshot.data!.translation, + style: TextStyle(fontSize: 30, color: Colors.grey[800]) + ) + ); + } else if (snapshot.hasError) { + // Display an error message if there's an error + return Text('${snapshot.error}'); + } else { + // Display a loading indicator while waiting for data + return Center(child: CircularProgressIndicator()); + } + }, + ); + } +} + diff --git a/motula_translate_app/lib/screens/home/home_screen.dart b/motula_translate_app/lib/screens/home/home_screen.dart index d0a1b87..c475c3e 100644 --- a/motula_translate_app/lib/screens/home/home_screen.dart +++ b/motula_translate_app/lib/screens/home/home_screen.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import '../../model/course.dart'; -import 'components/course_card.dart'; -import 'components/secondary_course_card.dart'; +import '../../model/word.dart'; +import 'components/words_screen.dart'; + class HomePage extends StatelessWidget { const HomePage({super.key}); @@ -10,37 +10,46 @@ class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - body: SafeArea( - bottom: false, - child: SingleChildScrollView( + body: SingleChildScrollView( child: Column( - crossAxisAlignment: CrossAxisAlignment.start, children: [ - const SizedBox(height: 30), Image( image: AssetImage('assets/Logo/LogoHome.png'), ), + Row(children: [ + Text('TO', style: TextStyle(fontSize: 30, color: Colors.grey[800])), + Text('--->', style: TextStyle(fontSize: 30, color: Colors.grey[800])), + Text('DO', style: TextStyle(fontSize: 30, color: Colors.grey[800])), + ]), + const SizedBox(height: 20), TextField( - keyboardType: TextInputType.text, + keyboardType: TextInputType.multiline, + maxLines: null, + style: TextStyle(fontSize: 20, color: Colors.grey[800]), decoration: InputDecoration( - hintText: 'Parola Italiana' + hintText: 'Parola Italiana', + hintStyle: TextStyle(fontSize: 20) ), ), + const SizedBox(height: 20), ElevatedButton( - onPressed: () {}, + onPressed: () { + + }, child: const Text('Traduci'), style: ElevatedButton.styleFrom( - backgroundColor: Colors.orange, + backgroundColor: Colors.orange, padding: EdgeInsets.symmetric(horizontal: 50, vertical: 20), textStyle: TextStyle( fontSize: 15, fontWeight: FontWeight.bold)), ), - Text('') + const SizedBox(height: 30), + WordsScreen(), + //Text('ToDo', style: TextStyle(fontSize: 30, color: Colors.grey[800])) ], ), ), - ), ); } } diff --git a/motula_translate_app/lib/screens/onboding/onboding_screen.dart b/motula_translate_app/lib/screens/onboding/onboding_screen.dart index e401779..f25d89f 100644 --- a/motula_translate_app/lib/screens/onboding/onboding_screen.dart +++ b/motula_translate_app/lib/screens/onboding/onboding_screen.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:rive/rive.dart'; +import '../entryPoint/entry_point.dart'; import 'components/animated_btn.dart'; import 'components/sign_in_dialog.dart'; @@ -97,17 +98,26 @@ class _OnbodingScreenState extends State { btnAnimationController: _btnAnimationController, press: () { _btnAnimationController.isActive = true; - Future.delayed( const Duration(milliseconds: 800), () { setState(() { isShowSignInDialog = true; }); - showCustomDialog( - context, - onValue: (_) {}, - ); + Future.delayed(const Duration(milliseconds: 800), () { + // Navigator.pop(context); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const EntryPoint(), + ), + ); + }); + //EntryPoint(); + //showCustomDialog( + // context, + // onValue: (_) {}, + //); // showCustomDialog( // context, // onValue: (_) {