diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png index f9e56c3..15627a3 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png index 80b4761..3de82e0 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png index 325161a..384c225 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png index c021d6f..fe88d19 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png index 6a072ab..7b66c6e 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png index a129aa1..8b2fc8f 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png index fae5418..6289bc6 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-38@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png index 7544d49..cd6afff 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png index 8842aa2..9e905b8 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png index 8842aa2..9e905b8 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png index 15208f4..4317775 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png index fca2df3..db22248 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png index 6a1769f..8315dd7 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-64@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png index d22c36a..acc4558 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-68@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png index 112a6ab..017e53c 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png index 8282461..9631041 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ diff --git a/lib/main.dart b/lib/main.dart index 94682df..c0f5071 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,7 +7,6 @@ import 'package:plan/router/routes.dart'; import 'package:plan/theme/theme.dart'; import 'package:provider/provider.dart'; - void main() { runApp( MultiProvider( diff --git a/lib/page/home/widget/plan_form_card.dart b/lib/page/home/widget/plan_form_card.dart index adfd5c1..8596fea 100644 --- a/lib/page/home/widget/plan_form_card.dart +++ b/lib/page/home/widget/plan_form_card.dart @@ -54,8 +54,11 @@ class _PlanFormCardState extends State { controller: _inputController, style: Theme.of(context).textTheme.bodyMedium, maxLength: 40, + maxLines: 5, + minLines: 1, + expands: false, decoration: InputDecoration( - hintText: "Clean the kitchen", + hintText: "Just finished eating and l'm gonna go wash the dishes", fillColor: Theme.of(context).colorScheme.surfaceContainerLow, filled: true, enabledBorder: OutlineInputBorder( diff --git a/lib/page/my/widget/profile_section.dart b/lib/page/my/widget/profile_section.dart index 5c9fa81..80458fa 100644 --- a/lib/page/my/widget/profile_section.dart +++ b/lib/page/my/widget/profile_section.dart @@ -20,9 +20,9 @@ class _ProfileSectionState extends State { final TextEditingController _inputController = TextEditingController(); final List _tips = [ - "Whenever your coach creates a plan for you, they’ll start by looking at this information.", - "The more details you share, the better your coach can tailor steps that fit your unique situation.", - "You can also add requests here — for example, ‘I don’t eat cilantro.", + "When your coach makes a plan for you,they'll check this info first.", + "The more details you toss in,the better your coach can tailor steps to match your totally unique situation.", + "You can also let your coach know here,like,Chocolate is a no-go for me 'cause I'm allergic", ]; //防抖 @@ -78,7 +78,8 @@ class _ProfileSectionState extends State { style: TextStyle(fontSize: 14, letterSpacing: 1), onChanged: _onTextChanged, decoration: InputDecoration( - hintText: "I’m 19 and always use a dishwasher. Please don’t follow the hand-wash disassembly steps.", + hintText: + "I'm a busy office worker who relies on a rice cooker every day-could you skip the steps for cooking rice in a regular pot?", enabledBorder: OutlineInputBorder( borderSide: BorderSide(color: Colors.grey), // 普通状态 borderRadius: BorderRadius.circular(8), diff --git a/lib/page/plan/detail/other/done_stamp.dart b/lib/page/plan/detail/other/done_stamp.dart index 295ed80..957856e 100644 --- a/lib/page/plan/detail/other/done_stamp.dart +++ b/lib/page/plan/detail/other/done_stamp.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:plan/page/plan/detail/viewmodel/plan_detail_store.dart'; +import 'package:provider/provider.dart'; class DoneStamp extends StatefulWidget { const DoneStamp({super.key}); @@ -10,30 +12,39 @@ class DoneStamp extends StatefulWidget { class _DoneStampState extends State { @override Widget build(BuildContext context) { - return Align( - alignment: Alignment(0.7, -0.3), - child: Transform.rotate( - angle: -0.4, - child: Container( - padding: EdgeInsets.symmetric(vertical: 3, horizontal: 5), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(5), - border: Border.all(color: Colors.red, width: 5), - ), - child: DefaultTextStyle( - style: TextStyle(color: Colors.red), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - "Completed", - style: TextStyle(fontWeight: FontWeight.w700), + return Consumer( + builder: (context, store, _) { + //是否全部完成 + bool allDone = store.planDetail.stepsList.every((item) => item.stepStatus == 2); + if (!allDone || store.planDetail.stepsList.isEmpty) { + return Container(); + } + return Align( + alignment: Alignment(0.7, -0.3), + child: Transform.rotate( + angle: -0.4, + child: Container( + padding: EdgeInsets.symmetric(vertical: 3, horizontal: 5), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: Colors.red, width: 5), + ), + child: DefaultTextStyle( + style: TextStyle(color: Colors.red), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + "Completed", + style: TextStyle(fontWeight: FontWeight.w700), + ), + ], ), - ], + ), ), ), - ), - ), + ); + }, ); } } diff --git a/lib/page/plan/detail/viewmodel/plan_detail_store.dart b/lib/page/plan/detail/viewmodel/plan_detail_store.dart index f6bdfd6..b1d2cf9 100644 --- a/lib/page/plan/detail/viewmodel/plan_detail_store.dart +++ b/lib/page/plan/detail/viewmodel/plan_detail_store.dart @@ -162,6 +162,7 @@ class PlanDetailStore extends ChangeNotifier { steps: planDetail.stepsList, suggestions: planDetail.suggestionsList, ); + planContent = ""; await getPlanDetail(); EasyLoading.showToast("Plan created!"); } diff --git a/lib/page/plan/detail/widgets/coach_message.dart b/lib/page/plan/detail/widgets/coach_message.dart index ee2df40..b27a192 100644 --- a/lib/page/plan/detail/widgets/coach_message.dart +++ b/lib/page/plan/detail/widgets/coach_message.dart @@ -12,24 +12,28 @@ class CoachMessage extends StatefulWidget { class _CoachMessageState extends State { @override Widget build(BuildContext context) { - var store = context.read(); - if (store.planContent.isEmpty) { - return SizedBox(); - } - return Container( - padding: EdgeInsets.all(20), - child: Column( - children: [ - Text( - "Organizing your plan…", - style: Theme.of(context).textTheme.bodyMedium, + return Selector( + selector: (_, store) => store.planContent, + builder: (context, planContent, _) { + if (planContent.isEmpty) { + return SizedBox(); + } + return Container( + padding: EdgeInsets.all(20), + child: Column( + children: [ + Text( + "Organizing your plan…", + style: Theme.of(context).textTheme.bodyMedium, + ), + Text( + '"$planContent"', + style: Theme.of(context).textTheme.titleMedium, + ), + ], ), - Text( - '"${store.planContent}"', - style: Theme.of(context).textTheme.titleMedium, - ), - ], - ), + ); + }, ); } }