From 58ccdd85ba617745aaada5bf52c25718f7fc5352 Mon Sep 17 00:00:00 2001 From: Luis Burgos Date: Fri, 23 Sep 2022 22:14:37 -0500 Subject: [PATCH] feat: add initial status view file --- .../shared/components/labeled_section.dart | 52 +++++++++++++++++++ .../trivia/initial/trivia_initial_view.dart | 43 +++++++++++++++ example/lib/shared/modules/trivia/page.dart | 48 ++--------------- 3 files changed, 98 insertions(+), 45 deletions(-) create mode 100644 example/lib/shared/components/labeled_section.dart create mode 100644 example/lib/shared/modules/trivia/initial/trivia_initial_view.dart diff --git a/example/lib/shared/components/labeled_section.dart b/example/lib/shared/components/labeled_section.dart new file mode 100644 index 0000000..3780795 --- /dev/null +++ b/example/lib/shared/components/labeled_section.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +class LabeledSection extends StatelessWidget { + const LabeledSection({ + Key? key, + required this.label, + required this.child, + this.backgroundColor = Colors.red, + }) : super(key: key); + + final String label; + final Widget child; + final Color backgroundColor; + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Container( + width: double.infinity, + margin: const EdgeInsets.fromLTRB(10, 30, 10, 10), + decoration: BoxDecoration( + border: Border.all( + color: Colors.blueGrey, + width: 1, + ), + shape: BoxShape.rectangle, + ), + child: Container( + color: backgroundColor, + child: child, + ), + ), + Positioned( + left: 10, + top: 10, + child: Container( + padding: const EdgeInsets.fromLTRB(10, 10, 10, 0), + color: backgroundColor, + child: Text( + label, + style: const TextStyle( + color: Colors.black, + fontSize: 12, + ), + ), + ), + ), + ], + ); + } +} diff --git a/example/lib/shared/modules/trivia/initial/trivia_initial_view.dart b/example/lib/shared/modules/trivia/initial/trivia_initial_view.dart new file mode 100644 index 0000000..5e2d78f --- /dev/null +++ b/example/lib/shared/modules/trivia/initial/trivia_initial_view.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; + +import '../../../components/labeled_section.dart'; +import '../components/copy_join_link_view.dart'; +import '../components/trivia_data_view.dart'; + +class TriviaInitialStatusView extends StatelessWidget { + const TriviaInitialStatusView({ + Key? key, + required this.triviaId, + required this.onCopyJoinLinkTap, + }) : super(key: key); + + final String triviaId; + final Function(String) onCopyJoinLinkTap; + + @override + Widget build(BuildContext context) { + const joinLink = 'TODO: improve joinLink'; + + return LabeledSection( + label: 'Initial', + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 50), + const TriviaDataView( + hostName: 'hostName', + triviaName: 'triviaName', + triviaDescription: 'triviaDescription', + triviaMainQuestion: 'triviaMainQuestion', + ), + CopyJoinLinkView( + joinLink: joinLink, + onCopyJoinLinkTap: (joinLink) { + //TODO: Implement. + }, + ), + ], + ), + ); + } +} diff --git a/example/lib/shared/modules/trivia/page.dart b/example/lib/shared/modules/trivia/page.dart index 0bee612..9d4c4ad 100644 --- a/example/lib/shared/modules/trivia/page.dart +++ b/example/lib/shared/modules/trivia/page.dart @@ -4,8 +4,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:scrollable_positioned_list/scrollable_positioned_list.dart'; -import 'components/copy_join_link_view.dart'; -import 'components/trivia_data_view.dart'; +import 'initial/trivia_initial_view.dart'; class NavigateToTrivia extends NavigateToCommand { NavigateToTrivia({ @@ -58,7 +57,7 @@ class TriviaPage extends StatelessWidget { ); } else { if (status == 'initial') { - triviaView = _TriviaInitialStatusView( + triviaView = TriviaInitialStatusView( triviaId: triviaId, onCopyJoinLinkTap: onCopyJoinLinkTap, ); @@ -113,7 +112,7 @@ class _TriviaCompleteView extends StatelessWidget { itemCount: 3, itemBuilder: (_, index) { if (index == 0) { - return _TriviaInitialStatusView( + return TriviaInitialStatusView( triviaId: triviaId, onCopyJoinLinkTap: onCopyJoinLinkTap, ); @@ -136,47 +135,6 @@ class _TriviaCompleteView extends StatelessWidget { } } -class _TriviaInitialStatusView extends StatelessWidget { - const _TriviaInitialStatusView({ - Key? key, - required this.triviaId, - required this.onCopyJoinLinkTap, - }) : super(key: key); - - final String triviaId; - final Function(String) onCopyJoinLinkTap; - - @override - Widget build(BuildContext context) { - const joinLink = 'TODO: improve joinLink'; - - return BaseContainer( - name: '$runtimeType', - body: Container( - color: Colors.red.shade200, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - const SizedBox(height: 50), - const TriviaDataView( - hostName: 'hostName', - triviaName: 'triviaName', - triviaDescription: 'triviaDescription', - triviaMainQuestion: 'triviaMainQuestion', - ), - CopyJoinLinkView( - joinLink: joinLink, - onCopyJoinLinkTap: (joinLink) { - //TODO: Implement. - }, - ), - ], - ), - ), - ); - } -} - class _TriviaStartedStatusView extends StatelessWidget { const _TriviaStartedStatusView({ Key? key,