Files
display-counter-cpone/lib/widget/my_error_dialog_state.dart
2025-02-04 19:39:14 +07:00

89 lines
3.2 KiB
Dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:queuedisplay/model/error_msg_model.dart';
import 'package:queuedisplay/provider/all_service_provider.dart';
import '../../app/constant.dart';
Future<String?> myErrorDialogState(BuildContext context, String header) {
return showDialog<String>(
barrierDismissible: false,
context: context,
builder: (BuildContext context) =>
HookConsumer(builder: (context, ref, child) {
return Dialog(
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"Error",
style: Constant.subTitle(context: context),
),
const SizedBox(
height: 10,
),
SizedBox(
width: Constant.getActualX(context: context, x: 700),
child: const Divider()),
SizedBox(
height: Constant.getActualY(context: context, y: 500),
width: Constant.getActualX(context: context, x: 700),
child: ListView(
// children: [Text(jsonEncode(ref.watch(errorListMsgProvider)))],
children: ref
.watch(errorListMsgProvider)
.map((e) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
e.title.toString(),
style: TextStyle(color: Colors.red),
),
Text(e.msg.toString()),
// Text(jsonEncode(ref.watch(errorListMsgProvider))),
SizedBox(
height: Constant.getActualY(
context: context, y: 20),
)
],
))
.toList(),
),
),
SizedBox(
width: Constant.getActualX(context: context, x: 700),
child: const Divider()),
const SizedBox(
height: 10,
),
SizedBox(
width: Constant.getActualX(context: context, x: 700),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
onPressed: () {
Navigator.pop(context);
ref.read(errorListMsgProvider.notifier).state =
List.empty(growable: true);
},
child: const Text('Tutup'),
),
],
),
),
],
),
),
);
}),
);
}