first commit

This commit is contained in:
Tothemax Dev
2024-09-27 13:30:11 +07:00
commit 5419429426
134 changed files with 5205 additions and 0 deletions

117
lib/print/max_print.dart Normal file
View File

@@ -0,0 +1,117 @@
import 'package:flutter/material.dart';
import 'package:max_print_plus/print/bluetooth_printer_screen.dart';
import 'package:max_print_plus/print/network_printer_screen.dart';
import 'package:max_print_plus/print/usb_printer_screen.dart';
import 'tab_bar.dart';
enum HistoryTabData { reservation, dinein, waitinglist, pickup, delivery }
class MaxPrintArgs {
final int _index = 0;
HistoryTabData initialTab;
MaxPrintArgs({required this.initialTab});
int get initialIndex => mapTabDataToIndex();
int mapTabDataToIndex() {
switch (initialTab) {
case HistoryTabData.reservation:
return 0;
case HistoryTabData.dinein:
return 1;
case HistoryTabData.waitinglist:
return 2;
case HistoryTabData.pickup:
return 3;
case HistoryTabData.delivery:
return 4;
default:
return 0;
}
}
}
class MaxPrint extends StatefulWidget {
MaxPrint({
Key? key,
}) : super(key: key);
@override
State<MaxPrint> createState() => _MaxPrintState();
}
class _MaxPrintState extends State<MaxPrint> with TickerProviderStateMixin {
String? uid;
bool? isLogin;
late final TabController _tabController;
@override
void initState() {
_tabController = TabController(length: 3, vsync: this);
_tabController.addListener(_handleTabSelection);
super.initState();
}
int tabIndex = 0;
void _handleTabSelection() {
setState(() {
tabIndex = _tabController.index;
print('Tab index: $tabIndex');
});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: DefaultTabController(
length: 3,
child: Scaffold(
backgroundColor: Color(0xFFFAFAFA),
appBar: AppBar(
title: Text('Print'),
bottom: CustomTabBar(
tabController: _tabController,
tabs: [
tabTitle('Bluetooth'),
tabTitle('WiFi'),
tabTitle('USB'),
// tabTitle('Ongoing'),
// tabTitle('Completed'),
],
),
),
body: Column(
children: [
Expanded(
child: TabBarView(
controller: _tabController,
children: [
BluetoothPrinterScreen(),
NetWorkPrinterScreen(),
USBPrinterScreen()
],
),
),
],
)),
));
}
}
Tab tabTitle(String title) {
return Tab(
icon: Text(
title,
style: const TextStyle(
// color: Pallete.primary,
fontSize: 12.0,
fontWeight: FontWeight.w600,
overflow: TextOverflow.ellipsis,
letterSpacing: 0.1),
maxLines: 1,
),
);
}