fix: home screen header fixed

This commit is contained in:
Osama Asif 2023-07-25 01:50:45 +05:00
parent 045af5a68a
commit 4047a593d2
6 changed files with 80 additions and 96 deletions

View File

@ -1,3 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="44" height="16" viewBox="0 0 44 16">
<path fill="#EBE7E4" fill-rule="evenodd" d="M14.044 11.41c0-1.88-.204-2.82-.612-2.82-.408 0-.966.547-1.675 1.64-.709 1.092-1.471 2.196-2.287 3.311-.816 1.115-1.568 1.672-2.255 1.672-.364 0-.908-.62-1.633-1.859l-.138-.24c-.795-1.398-1.665-2.786-2.61-4.163C1.89 7.574 1.053 6.885.323 6.885.107 6.885 0 6.776 0 6.557c0-.667.744-1.853 2.23-3.556l.218-.247C4.08.918 5.25 0 5.959 0c.68 0 1.674 1.044 2.984 3.132l.424.683c1.257 2.003 2.108 3.005 2.551 3.005.451 0 1.342-.817 2.674-2.45l.193-.239c1.439-1.792 2.577-2.688 3.414-2.688.838 0 1.46.338 1.868 1.016.408.678.645 1.41.709 2.197.064.787.14 1.519.225 2.196.086.678.258 1.017.516 1.017.43 0 1.535-1.082 3.318-3.246 1.782-2.164 3.081-3.246 3.897-3.246.902 0 2.405 1.377 4.51 4.131.773 1.05 1.75 2 2.93 2.853 1.182.852 2.159 1.278 2.932 1.278.773 0 1.525-.13 2.255-.393.73-.262 1.353-.394 1.868-.394.515 0 .773.175.773.525 0 .175-.075.328-.225.46l-.153.136c-.13.118-.312.287-.548.509l-.637.597c-.392.366-.73.67-1.012.914l-.163.138c-.365.306-.88.732-1.546 1.279-.666.546-1.235.973-1.707 1.279-1.289.786-2.502 1.18-3.64 1.18-1.138 0-2.405-.645-3.8-1.935-1.304-1.203-2.438-2.407-3.404-3.61l-.385-.486c-.918-1.138-1.598-1.707-2.042-1.707-.458 0-1.189.617-2.192 1.85l-.095.117c-1.052 1.312-2.126 2.623-3.221 3.935C18.135 15.344 17.19 16 16.395 16c-.794 0-1.395-.372-1.803-1.115-.408-.743-.612-1.552-.612-2.426l.064-1.05z"/>
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.863 9.36358C12.2498 9.45273 11.4191 9.95554 10.8736 10.5653C10.5849 10.8898 9.77914 11.9561 9.26932 12.6907C8.7096 13.5037 8.32456 14.085 8.06787 14.5129C7.45823 15.5256 7.41902 15.572 7.23719 15.4864C7.18372 15.4614 7.11241 15.3794 7.07676 15.3045C7.00546 15.1655 6.84503 14.5129 6.68103 13.7284C6.57051 13.1935 6.40652 12.6693 6.27817 12.4446C6.08209 12.0916 5.71845 11.9026 5.30845 11.9382C4.93411 11.9703 4.43143 12.2271 4.08205 12.5658C3.66493 12.9652 3.18007 13.8139 2.96972 14.5129C2.91625 14.6912 2.82712 14.9658 2.77008 15.1298C2.71303 15.2938 2.66669 15.4472 2.66669 15.4721C2.66669 15.5221 3.05172 15.7431 3.14085 15.7431C3.1765 15.7431 3.20146 15.7895 3.21215 15.8751C3.28346 16.3529 3.30841 16.574 3.34406 17.0804C3.46528 18.7457 3.72553 19.7799 4.20683 20.5037C4.85925 21.4808 5.91453 21.8267 6.90564 21.3881C7.54736 21.1028 8.12135 20.543 8.97698 19.3626C9.04828 19.2628 9.14811 19.1273 9.19802 19.0595C9.24793 18.9918 9.39767 18.7742 9.52958 18.5781C10.428 17.2587 10.8558 16.7309 11.1517 16.5812L11.3193 16.4956L11.3621 16.681C11.387 16.7844 11.4512 17.33 11.5082 17.9006C11.5688 18.4676 11.6401 19.1201 11.6687 19.3448C11.9218 21.2205 12.2961 22.2261 12.9699 22.8502C13.2765 23.1319 13.6152 23.3138 13.9824 23.3886C14.8095 23.5562 15.4727 23.3138 16.2427 22.5542C16.4923 22.3081 17.2089 21.4915 17.3123 21.3311C17.3408 21.2883 17.3836 21.2348 17.4085 21.2169C17.4442 21.1849 17.815 20.732 18.913 19.384C19.2232 19.0025 19.9754 18.2393 20.2072 18.0682C20.6314 17.7615 20.8988 17.6973 21.1555 17.8435C21.3587 17.9612 21.4977 18.1609 21.8257 18.7956C22.3356 19.787 22.5922 20.1899 23.1377 20.8675C23.9007 21.8125 24.5673 22.276 25.3944 22.4294C26.3285 22.6077 27.2804 22.2154 28.0433 21.3418C28.4747 20.8496 28.9382 20.2042 29.5657 19.22C29.8152 18.8313 30.5853 17.437 30.6637 17.2266C30.6922 17.1517 30.5104 17.0019 30.3215 16.952C30.2395 16.9271 30.0042 16.9092 29.7974 16.9128C29.3232 16.9128 28.9275 16.9984 28.0148 17.2944C27.1307 17.5832 26.7884 17.6545 26.5638 17.601C26.3463 17.544 26.1645 17.4477 26.0397 17.3264C25.915 17.1981 25.6119 16.6917 25.5442 16.4849C25.5121 16.4029 25.455 16.2424 25.4123 16.1354C25.3124 15.8894 25.0593 15.0014 24.9345 14.4594C24.8811 14.2347 24.8098 13.9459 24.7705 13.8175C24.7313 13.6891 24.6565 13.4181 24.6101 13.2113C24.4283 12.466 24.1787 11.8491 23.9149 11.5067C23.7794 11.332 23.4372 11.0681 23.1841 10.9469C23.0129 10.8684 22.8097 10.8078 22.5495 10.765C22.1823 10.7008 22.1537 10.7008 21.7865 10.765C21.3551 10.8363 21.1519 10.9184 20.7455 11.1787C20.4496 11.3677 19.9041 11.9061 19.6225 12.2841C19.5441 12.3911 19.4121 12.5587 19.3301 12.6586C19.2517 12.7548 19.0735 12.9795 18.9415 13.1578C18.6563 13.5287 18.3176 13.9708 17.8257 14.6056C17.6367 14.8516 17.4335 15.1155 17.3729 15.194C16.7953 15.95 15.9932 16.8843 15.929 16.8843C15.9147 16.8843 15.8933 16.8629 15.8827 16.8379C15.872 16.8165 15.8042 16.6596 15.7329 16.492C15.5226 16.0035 15.4548 15.3794 15.3942 13.4217C15.3443 11.8348 15.3015 11.3819 15.1411 10.847C14.9593 10.2266 14.6063 9.78794 14.093 9.53832C13.6865 9.34575 13.3336 9.29226 12.863 9.36358Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -6,7 +6,7 @@ import 'slide_transition_builder.dart';
ThemeData appTheme(BuildContext context) {
return ThemeData(
splashColor: ColorConstants.moonlight,
canvasColor: ColorConstants.greyIsTheNewBlack,
canvasColor: ColorConstants.ebony,
pageTransitionsTheme: PageTransitionsTheme(builders: {
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
TargetPlatform.android: SlideTransitionBuilder(),

View File

@ -40,7 +40,7 @@ Future<void> main() async {
sharedPreferences = await SharedPreferences.getInstance();
await Firebase.initializeApp();
await registerNotification();
audioHandler = await AudioService.init(
builder: () => AudioPlayerNotifier(),
config: AudioServiceConfig(
@ -96,7 +96,6 @@ class _ParentWidgetState extends ConsumerState<ParentWidget>
statusBarIconBrightness: Brightness.light,
systemNavigationBarColor: ColorConstants.transparent,
systemNavigationBarIconBrightness: Brightness.light,
statusBarColor: ColorConstants.transparent,
),
);

View File

@ -16,20 +16,21 @@ class HomeView extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
var homeRes = ref.watch(homeProvider);
var stats = ref.watch(remoteStatsProvider);
return Scaffold(
body: homeRes.when(
skipLoadingOnRefresh: true,
skipLoadingOnReload: false,
data: (data) => SafeArea(
top: false,
top: data.announcement == null,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
_getAnnouncementBanner(data),
HomeHeaderWidget(
homeMenuModel: data.menu,
streakCount: '5',
miniStatsModel: stats.asData?.value.mini,
),
height16,
Expanded(

View File

@ -1,13 +1,10 @@
import 'package:Medito/constants/constants.dart';
import 'package:Medito/models/models.dart';
import 'package:Medito/providers/providers.dart';
import 'package:Medito/utils/utils.dart';
import 'package:Medito/widgets/widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../row_item_widget.dart';
import 'package:share_plus/share_plus.dart';
import '../share_btn/share_btn_widget.dart';
class StatsBottomSheetWidget extends ConsumerWidget {

View File

@ -12,43 +12,34 @@ import '../bottom_sheet/menu/menu_bottom_sheet_widget.dart';
class HomeHeaderWidget extends StatelessWidget implements PreferredSizeWidget {
const HomeHeaderWidget({
super.key,
this.streakCount,
required this.homeMenuModel,
this.miniStatsModel,
});
final String? streakCount;
final List<HomeMenuModel> homeMenuModel;
final MiniStatsModel? miniStatsModel;
@override
Widget build(BuildContext context) {
return AppBar(
leading: _logo(context),
leadingWidth: 24,
actions: [
_statsWidget(context, streakCount: streakCount),
_downloadWidget(context),
_menuWidget(context),
],
actionsIconTheme: IconThemeData(size: 24),
return SizedBox(
height: 56,
child: Padding(
padding: const EdgeInsets.only(left: 12, right: 2),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
_logo(context),
Row(
children: [
_statsWidget(context),
_downloadWidget(context),
_menuWidget(context),
],
),
],
),
),
);
// return Padding(
// padding: const EdgeInsets.only(left: 15, right: 15, top: 10),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// _logo(context),
// Row(
// children: [
// _statsWidget(context, streakCount: streakCount),
// width16,
// _downloadWidget(context),
// width16,
// _menuWidget(context),
// ],
// ),
// ],
// ),
// );
}
LongPressDetectorWidget _logo(BuildContext context) {
@ -61,8 +52,12 @@ class HomeHeaderWidget extends StatelessWidget implements PreferredSizeWidget {
},
),
duration: Duration(seconds: 3),
child: SvgPicture.asset(
AssetConstants.icLogo,
child: Padding(
padding: const EdgeInsets.all(4.0),
child: SvgPicture.asset(
AssetConstants.icLogo,
width: 32,
),
),
);
}
@ -73,7 +68,6 @@ class HomeHeaderWidget extends StatelessWidget implements PreferredSizeWidget {
Icons.more_vert,
size: 24,
),
tooltip: 'Menu',
onPressed: () {
showModalBottomSheet<void>(
context: context,
@ -94,65 +88,58 @@ class HomeHeaderWidget extends StatelessWidget implements PreferredSizeWidget {
Icons.downloading,
size: 24,
),
tooltip: 'Menu',
onPressed: () => context.push(RouteConstants.collectionPath),
);
// return InkWell(
// onTap: () => context.push(RouteConstants.collectionPath),
// child: SvgPicture.asset(
// AssetConstants.icDownload,
// ),
// );
}
IconButton _statsWidget(BuildContext context, {String? streakCount}) {
return IconButton(
icon: const Icon(
Icons.downloading,
size: 24,
InkWell _statsWidget(BuildContext context) {
var icon = miniStatsModel?.icon != null
? IconData(
formatIcon(miniStatsModel!.icon),
fontFamily: 'MaterialIcons',
)
: Icons.local_fire_department_outlined;
var streakCount = miniStatsModel?.value.toString() ?? '0';
return InkWell(
customBorder: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
onTap: () {
showModalBottomSheet<void>(
context: context,
isScrollControlled: true,
useSafeArea: true,
backgroundColor: ColorConstants.transparent,
builder: (BuildContext context) {
return StatsBottomSheetWidget();
},
);
},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
border: Border.all(
width: 2,
color: ColorConstants.walterWhite,
),
),
padding: EdgeInsets.symmetric(horizontal: 3, vertical: 0),
child: Row(
children: [
Icon(
icon,
size: 14,
),
width4,
Text(
streakCount,
style: Theme.of(context).textTheme.titleSmall,
),
],
),
),
tooltip: 'Menu',
onPressed: () => context.push(RouteConstants.collectionPath),
);
// return InkWell(
// onTap: () {
// showModalBottomSheet<void>(
// context: context,
// isScrollControlled: true,
// useSafeArea: true,
// backgroundColor: ColorConstants.transparent,
// builder: (BuildContext context) {
// return StatsBottomSheetWidget();
// },
// );
// },
// child: Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(14),
// border: Border.all(
// width: 1,
// color: ColorConstants.walterWhite,
// ),
// ),
// padding: EdgeInsets.symmetric(horizontal: 7, vertical: 1),
// child: Row(
// children: [
// const Icon(
// Icons.local_fire_department_outlined,
// size: 24,
// weight: 0.1,
// grade: 0,
// ),
// width4,
// Text(
// streakCount ?? '0',
// style: Theme.of(context).textTheme.titleMedium,
// ),
// ],
// ),
// ),
// );
}
@override