edmaxlabs 0.3.0
edmaxlabs: ^0.3.0 copied to clipboard
A comprehensive Flutter package for advanced application development.
example/lib/main.dart
import 'dart:developer';
import 'package:edmaxlabs/edmaxlabs.dart';
import 'package:example/presentation/database/database.dart';
import 'package:example/presentation/storage/filemanager.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:heroicons/heroicons.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await EdmaxLabs.init(
projectId: 'XXXX',
defaultUser: "XXXX",
onConnectionFailed: (String reason) {
log(reason);
});
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'EdmaxLabs Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: Main(),
debugShowCheckedModeBanner: false,
);
}
}
class Main extends StatefulWidget {
const Main({super.key});
@override
State<Main> createState() => _MainState();
}
class _MainState extends State<Main> {
final service = EdmaxLabs.instance;
List<Widget> pages = [Database(), Filemanager()];
int currentPage = 0;
@override
void initState() {
super.initState();
}
Future<void> authAlert() async {
await showDialog<String>(
barrierDismissible: false,
context: context,
builder: (context) {
return StatefulBuilder(builder: (context, setDialogState) {
return AlertDialog(
backgroundColor: Colors.black,
title: Text(
"Authenticating ...",
style: GoogleFonts.poppins(color: Colors.white),
),
content: Text(
"Please finish authentication on another screen. Once done it wil automatically log you in and dismiss this popup\n\nKeep in mind auth session is valid for 3 minutes only",
style: GoogleFonts.poppins(color: Colors.white),
),
);
});
},
);
}
void auth() {
authAlert();
service!.auth().authCallback(
type: AuthType.basic,
onResult: (uid) {
print(uid);
Navigator.of(context).pop();
},
onError: (error) {
print(error);
Navigator.of(context).pop();
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
actions: [
GestureDetector(
onTap: auth,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: HeroIcon(
HeroIcons.shieldCheck,
color: Colors.red,
style: HeroIconStyle.solid,
),
),
)
],
),
body: pages[currentPage],
);
}
}