initialized Application theme

This commit is contained in:
Mohammad Salameh
2024-02-15 14:00:09 +03:00
parent 16f47f744c
commit 3190361901
98 changed files with 871 additions and 1004 deletions

View File

@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_app/features/home/bloc/home_cubit.dart';
import 'package:syncrow_app/features/shared_widgets/syncrow_logo.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class DefaultAppBar extends StatelessWidget implements PreferredSizeWidget {
const DefaultAppBar({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<HomeCubit, HomeState>(
builder: (context, state) {
return AppBar(
title: const SyncrowLogo(),
actions: <Widget>[
IconButton(
icon: const Icon(Icons.mic),
onPressed: () {},
),
IconButton(
icon: const Icon(Icons.add_circle,
color: ColorsManager.primaryColor),
onPressed: () {},
),
],
);
},
);
}
@override
Size get preferredSize => const Size.fromHeight(50);
}

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../home/home_provider.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_app/features/home/bloc/home_cubit.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class DefaultNavBar extends StatelessWidget {
const DefaultNavBar({
@ -10,15 +10,19 @@ class DefaultNavBar extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<HomeProvider>(
builder: (context, provider, child) {
return BlocBuilder<HomeCubit, HomeState>(
builder: (context, state) {
return BottomNavigationBar(
onTap: (int index) => provider.updatePageIndex(index, context),
currentIndex: HomeProvider.pageIndex,
selectedItemColor: Colors.black,
onTap: (int index) =>
HomeCubit.get(context).updatePageIndex(index, context),
currentIndex: HomeCubit.pageIndex,
selectedItemColor: ColorsManager.primaryColor,
selectedLabelStyle: const TextStyle(
color: ColorsManager.primaryColor,
),
unselectedItemColor: Colors.grey,
elevation: 10,
items: provider.bottomNavItems,
items: HomeCubit.get(context).bottomNavItems,
);
},
);

View File

@ -1,25 +1,25 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/resource_manager/color_manager.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class DefaultTextButton extends StatelessWidget {
const DefaultTextButton({
super.key,
this.onPressed,
required this.text,
this.isPrimary = false,
this.isSecondary = false,
});
final void Function()? onPressed;
final String text;
final bool isPrimary;
final bool isSecondary;
@override
Widget build(BuildContext context) {
return TextButton(
onPressed: onPressed,
style: isPrimary
? ButtonStyle(
style: isSecondary
? null
: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(ColorsManager.primaryColor),
shape: MaterialStateProperty.all(
@ -27,11 +27,10 @@ class DefaultTextButton extends StatelessWidget {
borderRadius: BorderRadius.circular(8),
),
),
)
: null,
),
child: Text(
text,
style: TextStyle(color: isPrimary ? Colors.white : Colors.black),
style: TextStyle(color: isSecondary ? Colors.black : Colors.white),
),
);
}

View File

@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/utils/resource_manager/assets_manager.dart';
class SyncrowLogo extends StatelessWidget {
const SyncrowLogo({
super.key,
this.isDark = true,
this.width = 150,
});
final bool isDark;
final double width;
@override
Widget build(BuildContext context) {
return Image.asset(isDark ? ImageManager.blackLogo : ImageManager.whiteLogo,
scale: 1, width: width);
}
}