💄 Optimize check in
This commit is contained in:
		| @@ -100,15 +100,14 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|     return Card( |     return Card( | ||||||
|       margin: |       margin: | ||||||
|           margin ?? EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8), |           margin ?? EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8), | ||||||
|       child: Column( |       child: Row( | ||||||
|         crossAxisAlignment: CrossAxisAlignment.center, |  | ||||||
|         spacing: 8, |  | ||||||
|         children: [ |         children: [ | ||||||
|           Column( |           Expanded( | ||||||
|  |             child: Column( | ||||||
|               crossAxisAlignment: CrossAxisAlignment.start, |               crossAxisAlignment: CrossAxisAlignment.start, | ||||||
|               children: [ |               children: [ | ||||||
|                 Row( |                 Row( | ||||||
|                 spacing: 8, |                   spacing: 6, | ||||||
|                   mainAxisSize: MainAxisSize.min, |                   mainAxisSize: MainAxisSize.min, | ||||||
|                   crossAxisAlignment: CrossAxisAlignment.center, |                   crossAxisAlignment: CrossAxisAlignment.center, | ||||||
|                   children: [ |                   children: [ | ||||||
| @@ -127,11 +126,31 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|                           Theme.of(context).colorScheme.onSecondaryContainer, |                           Theme.of(context).colorScheme.onSecondaryContainer, | ||||||
|                         ), |                         ), | ||||||
|                     Text(DateFormat('MM/dd').format(DateTime.now())) |                     Text(DateFormat('MM/dd').format(DateTime.now())) | ||||||
|                       .fontSize(12) |                         .fontSize(16) | ||||||
|                         .textColor( |                         .textColor( | ||||||
|                           Theme.of(context).colorScheme.onSecondaryContainer, |                           Theme.of(context).colorScheme.onSecondaryContainer, | ||||||
|                       ) |                         ), | ||||||
|                       .padding(top: 2), |                     Expanded( | ||||||
|  |                       child: AnimatedSwitcher( | ||||||
|  |                         duration: const Duration(milliseconds: 300), | ||||||
|  |                         child: todayResult.when( | ||||||
|  |                           data: (result) { | ||||||
|  |                             return Text( | ||||||
|  |                               result == null | ||||||
|  |                                   ? 'checkInNone' | ||||||
|  |                                   : 'checkInResultLevel${result.level}', | ||||||
|  |                               textAlign: TextAlign.start, | ||||||
|  |                             ).tr().fontSize(15).bold(); | ||||||
|  |                           }, | ||||||
|  |                           loading: | ||||||
|  |                               () => | ||||||
|  |                                   Text('checkInNone').tr().fontSize(15).bold(), | ||||||
|  |                           error: | ||||||
|  |                               (err, stack) => | ||||||
|  |                                   Text('error').tr().fontSize(15).bold(), | ||||||
|  |                         ), | ||||||
|  |                       ).alignment(Alignment.centerLeft), | ||||||
|  |                     ), | ||||||
|                   ], |                   ], | ||||||
|                 ), |                 ), | ||||||
|                 Row( |                 Row( | ||||||
| @@ -140,6 +159,7 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|                     Text('notableDayNext') |                     Text('notableDayNext') | ||||||
|                         .tr(args: [nextNotableDay.value?.localName ?? 'idk']) |                         .tr(args: [nextNotableDay.value?.localName ?? 'idk']) | ||||||
|                         .fontSize(12), |                         .fontSize(12), | ||||||
|  |                     if (nextNotableDay.value != null) | ||||||
|                       SlideCountdown( |                       SlideCountdown( | ||||||
|                         decoration: const BoxDecoration(), |                         decoration: const BoxDecoration(), | ||||||
|                         style: const TextStyle(fontSize: 12), |                         style: const TextStyle(fontSize: 12), | ||||||
| @@ -151,24 +171,17 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|                       ), |                       ), | ||||||
|                   ], |                   ], | ||||||
|                 ), |                 ), | ||||||
|             ], |                 const Gap(6), | ||||||
|           ).padding(horizontal: 16, top: 8), |                 AnimatedSwitcher( | ||||||
|           const Divider(height: 1), |  | ||||||
|           Row( |  | ||||||
|             children: [ |  | ||||||
|               Expanded( |  | ||||||
|                 child: AnimatedSwitcher( |  | ||||||
|                   duration: const Duration(milliseconds: 300), |                   duration: const Duration(milliseconds: 300), | ||||||
|                   child: todayResult.when( |                   child: todayResult.when( | ||||||
|                     data: (result) { |                     data: (result) { | ||||||
|                       if (result == null) return _CheckInNoneWidget(); |                       if (result == null) { | ||||||
|                       return Column( |                         return Text('checkInNoneHint').tr().fontSize(11); | ||||||
|                         crossAxisAlignment: CrossAxisAlignment.stretch, |                       } | ||||||
|                         children: [ |                       return Wrap( | ||||||
|                           Text( |                         alignment: WrapAlignment.start, | ||||||
|                             'checkInResultLevel${result.level}', |                         runAlignment: WrapAlignment.start, | ||||||
|                           ).tr().fontSize(15).bold(), |  | ||||||
|                           Wrap( |  | ||||||
|                         children: |                         children: | ||||||
|                             result.tips |                             result.tips | ||||||
|                                 .map((e) { |                                 .map((e) { | ||||||
| @@ -195,11 +208,9 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|                                 ) |                                 ) | ||||||
|                                 .toList() |                                 .toList() | ||||||
|                               ..removeLast(), |                               ..removeLast(), | ||||||
|                           ), |  | ||||||
|                         ], |  | ||||||
|                       ); |                       ); | ||||||
|                     }, |                     }, | ||||||
|                     loading: () => _CheckInNoneWidget(), |                     loading: () => Text('checkInNoneHint').tr().fontSize(11), | ||||||
|                     error: |                     error: | ||||||
|                         (err, stack) => Column( |                         (err, stack) => Column( | ||||||
|                           crossAxisAlignment: CrossAxisAlignment.start, |                           crossAxisAlignment: CrossAxisAlignment.start, | ||||||
| @@ -209,6 +220,8 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|                           ], |                           ], | ||||||
|                         ), |                         ), | ||||||
|                   ), |                   ), | ||||||
|  |                 ).alignment(Alignment.centerLeft), | ||||||
|  |               ], | ||||||
|             ), |             ), | ||||||
|           ), |           ), | ||||||
|           IconButton.outlined( |           IconButton.outlined( | ||||||
| @@ -238,24 +251,7 @@ class CheckInWidget extends HookConsumerWidget { | |||||||
|             ), |             ), | ||||||
|           ), |           ), | ||||||
|         ], |         ], | ||||||
|           ).padding(horizontal: 16, bottom: 12, top: 4), |       ).padding(horizontal: 16, vertical: 12), | ||||||
|         ], |  | ||||||
|       ), |  | ||||||
|     ); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| class _CheckInNoneWidget extends StatelessWidget { |  | ||||||
|   const _CheckInNoneWidget(); |  | ||||||
|  |  | ||||||
|   @override |  | ||||||
|   Widget build(BuildContext context) { |  | ||||||
|     return Column( |  | ||||||
|       crossAxisAlignment: CrossAxisAlignment.stretch, |  | ||||||
|       children: [ |  | ||||||
|         Text('checkInNone').tr().fontSize(15).bold(), |  | ||||||
|         Text('checkInNoneHint').tr().fontSize(11), |  | ||||||
|       ], |  | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user