💄 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