161 lines
4.8 KiB
Dart
161 lines
4.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
|
import 'package:pharmacy_mobile/auth/auth_gate.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/categorylist/categorylist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/genericlist/genericlist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/manufacturerlist/manufacturerlist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/medicinelist/medicinelist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/stocklist/stocklist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/caches/typelist/typelist_cache_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/guest/guest_bloc.dart';
|
|
import 'package:pharmacy_mobile/blocs/user/user_bloc.dart';
|
|
import 'package:pharmacy_mobile/pages/add_category_page.dart';
|
|
import 'package:pharmacy_mobile/pages/add_generics_page.dart';
|
|
import 'package:pharmacy_mobile/pages/add_manufacturer.dart';
|
|
import 'package:pharmacy_mobile/pages/add_medicine_page.dart';
|
|
import 'package:pharmacy_mobile/pages/add_stock_page.dart';
|
|
import 'package:pharmacy_mobile/pages/add_type_page.dart';
|
|
import 'package:pharmacy_mobile/pages/customer_page.dart';
|
|
import 'package:pharmacy_mobile/pages/customer_pages/customer_itemview_page.dart';
|
|
import 'package:pharmacy_mobile/pages/delete_stock_page.dart';
|
|
import 'package:pharmacy_mobile/pages/list_stocks_page.dart';
|
|
import 'package:pharmacy_mobile/pages/login_page.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
import 'package:pharmacy_mobile/pages/main_page.dart';
|
|
import 'package:pharmacy_mobile/pages/register_page.dart';
|
|
import 'package:supabase_flutter/supabase_flutter.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
|
Future<void> main() async {
|
|
await dotenv.load(fileName: ".env");
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
final supUrl = dotenv.env['SUPABASE_URL']!;
|
|
final supAnonkey = dotenv.env['SUPABASE_ANON_KEY']!;
|
|
|
|
await Supabase.initialize(
|
|
url: supUrl,
|
|
anonKey: supAnonkey,
|
|
);
|
|
|
|
runApp(MyApp());
|
|
}
|
|
|
|
final _router = GoRouter(
|
|
initialLocation: '/',
|
|
routes: [
|
|
GoRoute(
|
|
name: 'index',
|
|
path: '/',
|
|
builder: (context, state) => const AuthGate(),
|
|
),
|
|
GoRoute(
|
|
name: 'login',
|
|
path: '/login',
|
|
builder: (context, state) => const LoginPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'register',
|
|
path: '/register',
|
|
builder: (context, state) => const RegisterPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'main',
|
|
path: '/main',
|
|
builder: (context, state) => const MainPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addmanufactorer',
|
|
path: '/addmanufactorer',
|
|
builder: (context, state) => const AddManufacturerPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addmedicines',
|
|
path: '/addmedicines',
|
|
builder: (context, state) => const AddMedicinePage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addgenerics',
|
|
path: '/addgenerics',
|
|
builder: (context, state) => const AddGenericsPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addtype',
|
|
path: '/addtype',
|
|
builder: (context, state) => const AddTypePage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addcategory',
|
|
path: '/addcategory',
|
|
builder: (context, state) => const AddCategoryPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'addstock',
|
|
path: '/addstock',
|
|
builder: (context, state) => const AddStockPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'liststocks',
|
|
path: '/liststocks',
|
|
builder: (context, state) => const ListStocksPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'deletestock',
|
|
path: '/deletestock',
|
|
builder: (context, state) => const DeleteStockPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'customer',
|
|
path: '/customer',
|
|
builder: (context, state) => const CustomerPage(),
|
|
),
|
|
GoRoute(
|
|
name: 'itemview',
|
|
path: '/itemview',
|
|
builder: (context, state) => const CustomerItemviewPage(),
|
|
),
|
|
],
|
|
);
|
|
|
|
class MyApp extends StatelessWidget {
|
|
const MyApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MultiBlocProvider(
|
|
providers: [
|
|
BlocProvider(
|
|
create: (context) => GuestBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => UserBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => CategoryListBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => GenericListBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => TypeListBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => ManufacturerListBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => MedicineListBloc(),
|
|
),
|
|
BlocProvider(
|
|
create: (context) => StockListBloc(),
|
|
),
|
|
],
|
|
child: MaterialApp.router(
|
|
debugShowCheckedModeBanner: false,
|
|
theme: ThemeData(
|
|
useMaterial3: true,
|
|
),
|
|
routerConfig: _router,
|
|
),
|
|
);
|
|
}
|
|
}
|