import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:plan/page/plan/detail/viewmodel/plan_detail_store.dart'; import 'package:plan/theme/decorations/app_shadows.dart'; import 'package:provider/provider.dart'; import 'other/bar_actions.dart'; import 'other/footer_btn.dart'; import 'widgets/avatar_card.dart'; import 'widgets/coach_message.dart'; import 'widgets/plan_list.dart'; import 'widgets/scroll_box.dart'; import 'widgets/suggested.dart'; class PlanDetailPage extends StatefulWidget { final int? id; final String? planName; const PlanDetailPage({ super.key, this.id, this.planName, }); @override State createState() => _PlanDetailPageState(); } class _PlanDetailPageState extends State { final ScrollController scrollController = ScrollController(); ///store对象 late PlanDetailStore store; @override void initState() { super.initState(); store = PlanDetailStore( planId: widget.id ?? 0, planContent: widget.planName ?? "", scrollController: scrollController, ); } @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (_) { return store; }, child: Consumer( child: SafeArea( child: Column( children: [ AvatarCard(), Expanded( child: Padding( padding: EdgeInsets.only(left: 15, right: 15, bottom: 1), child: Container( decoration: shadowDecoration, child: Column( children: [ Expanded( child: ScrollBox( child: Column( children: [ CoachMessage(), PlanList(), SuggestedTitle(), SuggestedList(), ], ), ), ), FooterBtn() ], ), ), ), ), ], ), ), builder: (context, store, child) { return CupertinoPageScaffold( backgroundColor: Colors.white, navigationBar: CupertinoNavigationBar( middle: Text(store.planDetail.summary ?? ""), trailing: BarActions(store: store), ), child: child!, ); }, ), ); } }