diff --git a/lib/details.dart b/lib/details.dart index a1c9bb0..a040b2e 100644 --- a/lib/details.dart +++ b/lib/details.dart @@ -2,75 +2,14 @@ import 'package:flutter/material.dart'; import './event/event_model.dart'; import './widgets/contact.dart'; +import './widgets/heading.dart'; +import './widgets/section.dart'; class DetailsPage extends StatelessWidget { final EventDetail eventDetail; DetailsPage(this.eventDetail); @override Widget build(BuildContext context) { - Widget sectionWidget(String title, List list) { - if (list.length == 0) { - return Container(); - } - return Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - alignment: Alignment.topLeft, - child: Text( - title, - style: TextStyle( - fontSize: 15, - fontWeight: FontWeight.w500, - ), - ), - ), - Padding( - padding: const EdgeInsets.only( - left: 20.0, - top: 8.0, - ), - child: RichText( - text: TextSpan( - style: TextStyle( - color: Colors.black, - fontSize: 14, - fontWeight: FontWeight.w400, - ), - children: list.map((e) => TextSpan(text: e + '\n\n')).toList(), - ), - ), - ), - ], - ); - } - - Widget headingWidget(String name, String desc) { - return Column( - children: [ - Text( - name, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.bold, - ), - ), - Text( - desc, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 18, - ), - ), - SizedBox( - height: 20.0, - ), - ], - ); - } - return Scaffold( appBar: AppBar( title: Center( @@ -138,19 +77,19 @@ class DetailsPage extends StatelessWidget { ), child: ListView( children: [ - headingWidget( + HeadingWidget( eventDetail.name ?? "", eventDetail.shortDesc ?? ""), - sectionWidget("About:", eventDetail.about ?? []), - sectionWidget("Event Details:", eventDetail.details ?? []), - sectionWidget("Prizes:", eventDetail.prize ?? []), - sectionWidget("Judging Criteria:", eventDetail.judge ?? []), - sectionWidget("Eligibility Criteria:", + SectionWidget("About:", eventDetail.about ?? []), + SectionWidget("Event Details:", eventDetail.details ?? []), + SectionWidget("Prizes:", eventDetail.prize ?? []), + SectionWidget("Judging Criteria:", eventDetail.judge ?? []), + SectionWidget("Eligibility Criteria:", eventDetail.rules?.eligible ?? []), - sectionWidget("Participant’s Guidelines:", + SectionWidget("Participant’s Guidelines:", eventDetail.rules?.guide ?? []), - sectionWidget( + SectionWidget( "Submission details:", eventDetail.submission ?? []), - sectionWidget("Event timeline:", eventDetail.timeline ?? []), + SectionWidget("Event timeline:", eventDetail.timeline ?? []), ContactWidget("Contact Details", eventDetail.contact ?? []), ], )), diff --git a/lib/widgets/heading.dart b/lib/widgets/heading.dart new file mode 100644 index 0000000..6a36291 --- /dev/null +++ b/lib/widgets/heading.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class HeadingWidget extends StatelessWidget { + final String name; + final String desc; + HeadingWidget(this.name, this.desc); + @override + Widget build(BuildContext context) { + return Column( + children: [ + Text( + name, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + Text( + desc, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + ), + ), + SizedBox( + height: 20.0, + ), + ], + ); + } +} diff --git a/lib/widgets/section.dart b/lib/widgets/section.dart new file mode 100644 index 0000000..56b86ff --- /dev/null +++ b/lib/widgets/section.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; + +class SectionWidget extends StatelessWidget { + final String title; + final List list; + SectionWidget(this.title, this.list); + @override + Widget build(BuildContext context) { + if (list.length == 0) { + return Container(); + } + return Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + alignment: Alignment.topLeft, + child: Text( + title, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + ), + ), + ), + Padding( + padding: const EdgeInsets.only( + left: 20.0, + top: 8.0, + ), + child: RichText( + text: TextSpan( + style: TextStyle( + color: Colors.black, + fontSize: 14, + fontWeight: FontWeight.w400, + ), + children: list.map((e) => TextSpan(text: e + '\n\n')).toList(), + ), + ), + ), + ], + ); + } +}