mirror of
https://github.com/meditohq/medito-app.git
synced 2024-10-26 20:03:25 +03:00
fix: fix sticky stats position on cold start
This commit is contained in:
parent
295c1791bd
commit
70bb69d901
@ -23,14 +23,13 @@ class CoursesRowWidgetState extends State<CoursesRowWidget> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 32.0, left: 16, bottom: 8.0),
|
||||
child: Text('Courses', style: Theme.of(context).textTheme.headline3),
|
||||
),
|
||||
StreamBuilder<ApiResponse<CoursesResponse>>(
|
||||
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 32.0, left: 16, bottom: 8.0),
|
||||
child: Text('Courses', style: Theme.of(context).textTheme.headline3),
|
||||
),
|
||||
SizeChangedLayoutNotifier(
|
||||
child: StreamBuilder<ApiResponse<CoursesResponse>>(
|
||||
stream: _bloc.coursesList.stream,
|
||||
initialData: ApiResponse.loading(),
|
||||
builder: (context, snapshot) {
|
||||
@ -48,8 +47,8 @@ class CoursesRowWidgetState extends State<CoursesRowWidget> {
|
||||
}
|
||||
return Container();
|
||||
}),
|
||||
],
|
||||
);
|
||||
),
|
||||
]);
|
||||
}
|
||||
|
||||
Widget _horizontalCoursesRow(
|
||||
|
@ -22,33 +22,37 @@ class DailyMessageWidgetState extends State<DailyMessageWidget> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return StreamBuilder<ApiResponse<DailyMessageResponse>>(
|
||||
stream: _bloc.coursesList.stream,
|
||||
builder: (context, snapshot) {
|
||||
var widget;
|
||||
return SizeChangedLayoutNotifier(
|
||||
child: StreamBuilder<ApiResponse<DailyMessageResponse>>(
|
||||
stream: _bloc.coursesList.stream,
|
||||
builder: (context, snapshot) {
|
||||
var widget;
|
||||
|
||||
if (!snapshot.hasData || snapshot.data == null || snapshot.data.body.body.isEmptyOrNull()) {
|
||||
return Container();
|
||||
}
|
||||
if (!snapshot.hasData ||
|
||||
snapshot.data == null ||
|
||||
snapshot.data.body.body.isEmptyOrNull()) {
|
||||
return Container();
|
||||
}
|
||||
|
||||
switch (snapshot.data.status) {
|
||||
case Status.LOADING:
|
||||
widget = const CircularProgressIndicator();
|
||||
break;
|
||||
case Status.COMPLETED:
|
||||
widget = _getMessageWidget(snapshot, context);
|
||||
break;
|
||||
case Status.ERROR:
|
||||
widget = Container();
|
||||
break;
|
||||
}
|
||||
switch (snapshot.data.status) {
|
||||
case Status.LOADING:
|
||||
widget = const CircularProgressIndicator();
|
||||
break;
|
||||
case Status.COMPLETED:
|
||||
widget = _getMessageWidget(snapshot, context);
|
||||
break;
|
||||
case Status.ERROR:
|
||||
widget = Container();
|
||||
break;
|
||||
}
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 16.0, right: 16.0, bottom: 32.0, top: 32.0),
|
||||
child: widget,
|
||||
);
|
||||
});
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 16.0, right: 16.0, bottom: 32.0, top: 32.0),
|
||||
child: widget,
|
||||
);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _getMessageWidget(
|
||||
@ -75,8 +79,6 @@ class DailyMessageWidgetState extends State<DailyMessageWidget> {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void _launchUrl(String text, String href, String title) {
|
||||
launchUrl(href);
|
||||
}
|
||||
|
@ -31,40 +31,42 @@ class SmallShortcutsRowWidgetState extends State<SmallShortcutsRowWidget> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return StreamBuilder<ApiResponse<ShortcutsResponse>>(
|
||||
stream: _bloc.shortcutList.stream,
|
||||
initialData: ApiResponse.loading(),
|
||||
builder: (context, snapshot) {
|
||||
switch (snapshot.data.status) {
|
||||
case Status.LOADING:
|
||||
return _getLoadingWidget();
|
||||
break;
|
||||
case Status.COMPLETED:
|
||||
return GridView.count(
|
||||
crossAxisCount: 2,
|
||||
padding:
|
||||
const EdgeInsets.only(left: 12.0, right: 12.0, top: 8.0),
|
||||
scrollDirection: Axis.vertical,
|
||||
childAspectRatio: 2.6,
|
||||
physics: NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
children:
|
||||
List.generate(snapshot.data.body?.data?.length ?? 0, (index) {
|
||||
return Card(
|
||||
clipBehavior: Clip.antiAlias,
|
||||
color: MeditoColors.deepNight,
|
||||
child: SmallShortcutWidget(
|
||||
snapshot.data.body.data[index], widget.onTap),
|
||||
);
|
||||
}),
|
||||
);
|
||||
break;
|
||||
case Status.ERROR:
|
||||
return Icon(Icons.error);
|
||||
break;
|
||||
}
|
||||
return Container();
|
||||
});
|
||||
return SizeChangedLayoutNotifier(
|
||||
child: StreamBuilder<ApiResponse<ShortcutsResponse>>(
|
||||
stream: _bloc.shortcutList.stream,
|
||||
initialData: ApiResponse.loading(),
|
||||
builder: (context, snapshot) {
|
||||
switch (snapshot.data.status) {
|
||||
case Status.LOADING:
|
||||
return _getLoadingWidget();
|
||||
break;
|
||||
case Status.COMPLETED:
|
||||
return GridView.count(
|
||||
crossAxisCount: 2,
|
||||
padding:
|
||||
const EdgeInsets.only(left: 12.0, right: 12.0, top: 8.0),
|
||||
scrollDirection: Axis.vertical,
|
||||
childAspectRatio: 2.6,
|
||||
physics: NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
children: List.generate(snapshot.data.body?.data?.length ?? 0,
|
||||
(index) {
|
||||
return Card(
|
||||
clipBehavior: Clip.antiAlias,
|
||||
color: MeditoColors.deepNight,
|
||||
child: SmallShortcutWidget(
|
||||
snapshot.data.body.data[index], widget.onTap),
|
||||
);
|
||||
}),
|
||||
);
|
||||
break;
|
||||
case Status.ERROR:
|
||||
return Icon(Icons.error);
|
||||
break;
|
||||
}
|
||||
return Container();
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _getLoadingWidget() => GridView.count(
|
||||
|
@ -18,15 +18,14 @@ class _StatsWidgetState extends State<StatsWidget> {
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16.0, bottom: 8.0),
|
||||
child: Text('Stats',
|
||||
style: Theme.of(context).textTheme.headline3),
|
||||
child: Text('Stats', style: Theme.of(context).textTheme.headline3),
|
||||
),
|
||||
SizedBox(
|
||||
height: 73,
|
||||
child: ListView.builder(
|
||||
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
|
||||
itemBuilder: (context, i) => statsItem(context, i),
|
||||
itemCount: 5,
|
||||
itemCount: 4,
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
),
|
||||
|
@ -71,10 +71,9 @@ class _ExpandedSectionState extends State<ExpandedSection> with SingleTickerProv
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizeTransition(
|
||||
axisAlignment: 1.0,
|
||||
sizeFactor: animation,
|
||||
child: widget.child
|
||||
return SizeChangedLayoutNotifier(
|
||||
child: SizeTransition(
|
||||
axisAlignment: 1.0, sizeFactor: animation, child: widget.child),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user