printer setting null safety

This commit is contained in:
efrilm 2025-09-17 22:35:00 +07:00
parent bd02f389e5
commit 8aa326c513
5 changed files with 100 additions and 104 deletions

View File

@ -22,23 +22,22 @@ class BarPrinterPage extends StatefulWidget {
class _BarPrinterPageState extends State<BarPrinterPage> {
String selectedPrinter = 'Bluetooth';
TextEditingController? addressController;
TextEditingController? printNameController;
TextEditingController addressController = TextEditingController();
TextEditingController printNameController = TextEditingController();
String paper = '58';
bool isInitialized = false;
@override
void initState() {
// TODO: implement initState
super.initState();
addressController = TextEditingController();
printNameController = TextEditingController();
context.read<GetPrinterBarBloc>().add(GetPrinterBarEvent.get());
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<GetPrinterBarBloc>().add(GetPrinterBarEvent.get());
});
}
@override
void dispose() {
addressController!.dispose();
printNameController!.dispose();
addressController.dispose();
printNameController.dispose();
super.dispose();
}
@ -57,8 +56,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
},
success: (data) {
if (data != null && !isInitialized) {
addressController!.text = data.address;
printNameController!.text = data.name;
addressController.text = data.address;
printNameController.text = data.name;
selectedPrinter = data.type;
paper = data.paper;
isInitialized = true;
@ -112,7 +111,7 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
context: context,
builder: (context) => DialogSearchPrinter(
onSelected: (value) {
addressController!.text = value;
addressController.text = value;
setState(() {});
},
),
@ -120,14 +119,14 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
},
label: 'Search')
: CustomTextField(
controller: addressController!,
controller: addressController,
label: 'Address',
showLabel: false,
),
SpaceHeight(16),
// Textfield for name
CustomTextField(
controller: printNameController!,
controller: printNameController,
label: 'Print Name',
showLabel: false,
),
@ -161,14 +160,14 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
if (addressController.text.isNotEmpty &&
printNameController.text.isNotEmpty) {
try {
// Create a test print model
final testPrinter = PrintModel(
code: 'bar',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -234,8 +233,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
onPressed: () {
final printData = PrintModel(
code: 'bar',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -279,8 +278,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
final printData = PrintModel(
id: data.id,
code: 'bar',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);

View File

@ -22,23 +22,22 @@ class CheckerPrinterPage extends StatefulWidget {
class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
String selectedPrinter = 'Bluetooth';
TextEditingController? addressController;
TextEditingController? printNameController;
TextEditingController addressController = TextEditingController();
TextEditingController printNameController = TextEditingController();
String paper = '58';
bool isInitialized = false;
@override
void initState() {
// TODO: implement initState
super.initState();
addressController = TextEditingController();
printNameController = TextEditingController();
context.read<GetPrinterCheckerBloc>().add(GetPrinterCheckerEvent.get());
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<GetPrinterCheckerBloc>().add(GetPrinterCheckerEvent.get());
});
}
@override
void dispose() {
addressController!.dispose();
printNameController!.dispose();
addressController.dispose();
printNameController.dispose();
isInitialized = false;
super.dispose();
}
@ -59,8 +58,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
success: (data) {
log("Checker Printer: ${data?.toMap()}");
if (data != null && !isInitialized) {
addressController!.text = data.address;
printNameController!.text = data.name;
addressController.text = data.address;
printNameController.text = data.name;
selectedPrinter = data.type;
paper = data.paper;
isInitialized = true;
@ -114,7 +113,7 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
context: context,
builder: (context) => DialogSearchPrinter(
onSelected: (value) {
addressController!.text = value;
addressController.text = value;
setState(() {});
},
),
@ -122,14 +121,14 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
},
label: 'Search')
: CustomTextField(
controller: addressController!,
controller: addressController,
label: 'Address',
showLabel: false,
),
SpaceHeight(16),
// Textfield for name
CustomTextField(
controller: printNameController!,
controller: printNameController,
label: 'Print Name',
showLabel: false,
),
@ -163,14 +162,14 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
if (addressController.text.isNotEmpty &&
printNameController.text.isNotEmpty) {
try {
// Create a test print model
final testPrinter = PrintModel(
code: 'checker',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -237,8 +236,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
onPressed: () {
final printData = PrintModel(
code: 'checker',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -282,8 +281,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
final printData = PrintModel(
id: data.id,
code: 'checker',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);

View File

@ -22,23 +22,22 @@ class KitchenPrinterPage extends StatefulWidget {
class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
String selectedPrinter = 'Bluetooth';
TextEditingController? addressController;
TextEditingController? printNameController;
TextEditingController addressController = TextEditingController();
TextEditingController printNameController = TextEditingController();
String paper = '58';
bool isInitialized = false;
@override
void initState() {
// TODO: implement initState
super.initState();
addressController = TextEditingController();
printNameController = TextEditingController();
context.read<GetPrinterKitchenBloc>().add(GetPrinterKitchenEvent.get());
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<GetPrinterKitchenBloc>().add(GetPrinterKitchenEvent.get());
});
}
@override
void dispose() {
addressController!.dispose();
printNameController!.dispose();
addressController.dispose();
printNameController.dispose();
super.dispose();
}
@ -57,8 +56,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
},
success: (data) {
if (data != null && !isInitialized) {
addressController!.text = data.address;
printNameController!.text = data.name;
addressController.text = data.address;
printNameController.text = data.name;
selectedPrinter = data.type;
paper = data.paper;
isInitialized = true;
@ -112,7 +111,7 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
context: context,
builder: (context) => DialogSearchPrinter(
onSelected: (value) {
addressController!.text = value;
addressController.text = value;
setState(() {});
},
),
@ -120,14 +119,14 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
},
label: 'Search')
: CustomTextField(
controller: addressController!,
controller: addressController,
label: 'Address',
showLabel: false,
),
SpaceHeight(16),
// Textfield for name
CustomTextField(
controller: printNameController!,
controller: printNameController,
label: 'Print Name',
showLabel: false,
),
@ -161,14 +160,14 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
if (addressController.text.isNotEmpty &&
printNameController.text.isNotEmpty) {
try {
// Create a test print model
final testPrinter = PrintModel(
code: 'kitchen',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -235,8 +234,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
onPressed: () {
final printData = PrintModel(
code: 'kitchen',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -280,8 +279,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
final printData = PrintModel(
id: data.id,
code: 'kitchen',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);

View File

@ -23,23 +23,22 @@ class ReceiptPrinterPage extends StatefulWidget {
class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
String selectedPrinter = 'Bluetooth';
TextEditingController? addressController;
TextEditingController? printNameController;
TextEditingController addressController = TextEditingController();
TextEditingController printNameController = TextEditingController();
String paper = '58';
bool isInitialized = false;
@override
void initState() {
// TODO: implement initState
super.initState();
addressController = TextEditingController();
printNameController = TextEditingController();
context.read<GetPrinterReceiptBloc>().add(GetPrinterReceiptEvent.get());
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<GetPrinterReceiptBloc>().add(GetPrinterReceiptEvent.get());
});
}
@override
void dispose() {
addressController!.dispose();
printNameController!.dispose();
addressController.dispose();
printNameController.dispose();
super.dispose();
}
@ -58,8 +57,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
},
success: (data) {
if (data != null && !isInitialized) {
addressController!.text = data.address;
printNameController!.text = data.name;
addressController.text = data.address;
printNameController.text = data.name;
selectedPrinter = data.type;
paper = data.paper;
isInitialized = true;
@ -113,7 +112,7 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
context: context,
builder: (context) => DialogSearchPrinter(
onSelected: (value) {
addressController!.text = value;
addressController.text = value;
setState(() {});
},
),
@ -121,14 +120,14 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
},
label: 'Search')
: CustomTextField(
controller: addressController!,
controller: addressController,
label: 'Address',
showLabel: false,
),
SpaceHeight(16),
// Textfield for name
CustomTextField(
controller: printNameController!,
controller: printNameController,
label: 'Print Name',
showLabel: false,
),
@ -162,8 +161,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
if (addressController.text.isNotEmpty &&
printNameController.text.isNotEmpty) {
try {
// Get actual tax and service charge settings
final settingsLocalDatasource =
@ -177,8 +176,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
// Create a test print model
final testPrinter = PrintModel(
code: 'receipt',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -253,8 +252,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
onPressed: () {
final printData = PrintModel(
code: 'receipt',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -298,8 +297,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
final printData = PrintModel(
id: data.id,
code: 'receipt',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);

View File

@ -23,22 +23,22 @@ class TicketPrinterPage extends StatefulWidget {
class _TicketPrinterPageState extends State<TicketPrinterPage> {
String selectedPrinter = 'Bluetooth';
TextEditingController? addressController;
TextEditingController? printNameController;
TextEditingController addressController = TextEditingController();
TextEditingController printNameController = TextEditingController();
String paper = '58';
bool isInitialized = false;
@override
void initState() {
super.initState();
addressController = TextEditingController();
printNameController = TextEditingController();
context.read<GetPrinterTicketBloc>().add(GetPrinterTicketEvent.get());
WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<GetPrinterTicketBloc>().add(GetPrinterTicketEvent.get());
});
}
@override
void dispose() {
addressController!.dispose();
printNameController!.dispose();
addressController.dispose();
printNameController.dispose();
super.dispose();
}
@ -57,8 +57,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
},
success: (data) {
if (data != null && !isInitialized) {
addressController!.text = data.address;
printNameController!.text = data.name;
addressController.text = data.address;
printNameController.text = data.name;
selectedPrinter = data.type;
paper = data.paper;
isInitialized = true;
@ -112,7 +112,7 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
context: context,
builder: (context) => DialogSearchPrinter(
onSelected: (value) {
addressController!.text = value;
addressController.text = value;
setState(() {});
},
),
@ -120,14 +120,14 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
},
label: 'Search')
: CustomTextField(
controller: addressController!,
controller: addressController,
label: 'Address',
showLabel: false,
),
SpaceHeight(16),
// Textfield for name
CustomTextField(
controller: printNameController!,
controller: printNameController,
label: 'Print Name',
showLabel: false,
),
@ -161,14 +161,14 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
// button test print
Button.outlined(
onPressed: () async {
if (addressController!.text.isNotEmpty &&
printNameController!.text.isNotEmpty) {
if (addressController.text.isNotEmpty &&
printNameController.text.isNotEmpty) {
try {
// Create a test print model
final testPrinter = PrintModel(
code: 'ticket',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -231,8 +231,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
onPressed: () {
final printData = PrintModel(
code: 'ticket',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);
@ -276,8 +276,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
final printData = PrintModel(
id: data.id,
code: 'ticket',
name: printNameController!.text,
address: addressController!.text,
name: printNameController.text,
address: addressController.text,
paper: paper,
type: selectedPrinter,
);