revamped onboarding
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m36s
				
			
		
			
				
	
				Run linting on the backend code / Build (pull_request) Successful in 28s
				
			
		
			
				
	
				Run testing on the backend code / Build (pull_request) Failing after 18m37s
				
			
		
			
				
	
				Build and release debug APK / Build APK (pull_request) Failing after 4m42s
				
			
		
			
				
	
				Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 31s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build and deploy the backend to staging / Build and push image (pull_request) Successful in 2m36s
				
			Run linting on the backend code / Build (pull_request) Successful in 28s
				
			Run testing on the backend code / Build (pull_request) Failing after 18m37s
				
			Build and release debug APK / Build APK (pull_request) Failing after 4m42s
				
			Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 31s
				
			This commit is contained in:
		| @@ -69,7 +69,6 @@ class _LandmarkCardState extends State<LandmarkCard> { | ||||
|                           padding: EdgeInsets.all(5), | ||||
|                           child: Row( | ||||
|                             mainAxisAlignment: MainAxisAlignment.center, | ||||
|                             spacing: 5, | ||||
|                             children: [ | ||||
|                               Icon(Icons.timer_outlined, size: 16), | ||||
|                               Text("${widget.landmark.duration?.inMinutes} minutes"), | ||||
|   | ||||
							
								
								
									
										97
									
								
								frontend/lib/modules/onbarding_agreement_card.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								frontend/lib/modules/onbarding_agreement_card.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_markdown/flutter_markdown.dart'; | ||||
|  | ||||
| import 'package:anyway/modules/onboarding_card.dart'; | ||||
|  | ||||
|  | ||||
| class OnboardingAgreementCard extends StatefulWidget { | ||||
|   final String title; | ||||
|   final String description; | ||||
|   final String imagePath; | ||||
|   final String agreementTextPath; | ||||
|   final ValueChanged<bool> onAgreementChanged; | ||||
|  | ||||
|  | ||||
|   OnboardingAgreementCard({ | ||||
|     super.key,  | ||||
|     required this.title, | ||||
|     required this.description, | ||||
|     required this.imagePath, | ||||
|     required this.agreementTextPath, | ||||
|     required this.onAgreementChanged | ||||
|   }); | ||||
|  | ||||
|   @override | ||||
|   State<OnboardingAgreementCard> createState() => _OnboardingAgreementCardState(); | ||||
| } | ||||
|  | ||||
| class _OnboardingAgreementCardState extends State<OnboardingAgreementCard> { | ||||
|   bool agreed = false; | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Padding( | ||||
|       padding: EdgeInsets.all(20), | ||||
|       child: Column( | ||||
|         mainAxisAlignment: MainAxisAlignment.center, | ||||
|         children: [ | ||||
|           OnboardingCard(title: widget.title, description: widget.description, imagePath: widget.imagePath), | ||||
|           Padding(padding: EdgeInsets.only(top: 20)), | ||||
|           Row( | ||||
|             mainAxisAlignment: MainAxisAlignment.center, | ||||
|             children: [ | ||||
|               Checkbox( | ||||
|                 value: agreed, | ||||
|                 onChanged: (value) { | ||||
|                   setState(() { | ||||
|                     agreed = value!; | ||||
|                     widget.onAgreementChanged(value); | ||||
|                   }); | ||||
|                 }, | ||||
|               ), | ||||
|               Text( | ||||
|                 "I agree to the ", | ||||
|                 style: Theme.of(context).textTheme.bodyMedium!.copyWith( | ||||
|                   color: Colors.white, | ||||
|                 ), | ||||
|               ), | ||||
|               GestureDetector( | ||||
|                 onTap: () { | ||||
|                   // show a dialog with the agreement text | ||||
|                   showDialog( | ||||
|                     context: context, | ||||
|                     builder: (BuildContext context) { | ||||
|                       return AlertDialog( | ||||
|                         scrollable: true, | ||||
|                         content: FutureBuilder( | ||||
|                           future: DefaultAssetBundle.of(context).loadString(widget.agreementTextPath), | ||||
|                           builder: (context, snapshot) { | ||||
|                             if (snapshot.hasData) { | ||||
|                               return MarkdownBody( | ||||
|                                 data: snapshot.data.toString(), | ||||
|                               ); | ||||
|                             } else { | ||||
|                               return CircularProgressIndicator(); | ||||
|                             } | ||||
|                              | ||||
|                           }, | ||||
|                         ) | ||||
|                       ); | ||||
|                     } | ||||
|                   ); | ||||
|  | ||||
|                 }, | ||||
|                 child: Text( | ||||
|                   "Terms of Service (click to view)", | ||||
|                   style: Theme.of(context).textTheme.bodyMedium!.copyWith( | ||||
|                     color: Colors.white, | ||||
|                     fontWeight: FontWeight.bold, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ], | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @@ -22,9 +22,7 @@ class OnboardingCard extends StatelessWidget { | ||||
|         children: [ | ||||
|           Text( | ||||
|             title, | ||||
|             style: TextStyle( | ||||
|               fontSize: 24, | ||||
|               fontWeight: FontWeight.bold, | ||||
|             style: Theme.of(context).textTheme.headlineLarge!.copyWith( | ||||
|               color: Colors.white, | ||||
|             ), | ||||
|           ), | ||||
| @@ -36,13 +34,12 @@ class OnboardingCard extends StatelessWidget { | ||||
|           Padding(padding: EdgeInsets.only(top: 20)), | ||||
|           Text( | ||||
|             description, | ||||
|             style: TextStyle( | ||||
|               fontSize: 16, | ||||
|             style: Theme.of(context).textTheme.bodyMedium!.copyWith( | ||||
|               color: Colors.white, | ||||
|             ), | ||||
|           ), | ||||
|  | ||||
|         ] | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user