2024-05-19 16:08:20 +00:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:get/get.dart';
|
2024-08-21 07:25:50 +00:00
|
|
|
import 'package:solian/exceptions/unauthorized.dart';
|
2024-05-19 16:08:20 +00:00
|
|
|
|
|
|
|
extension SolianExtenions on BuildContext {
|
2024-07-31 18:10:57 +00:00
|
|
|
void showSnackbar(String content, {SnackBarAction? action}) {
|
2024-05-19 16:08:20 +00:00
|
|
|
ScaffoldMessenger.of(this).showSnackBar(SnackBar(
|
|
|
|
content: Text(content),
|
2024-07-31 18:10:57 +00:00
|
|
|
action: action,
|
2024-05-19 16:08:20 +00:00
|
|
|
));
|
|
|
|
}
|
|
|
|
|
2024-06-29 13:03:15 +00:00
|
|
|
void clearSnackbar() {
|
|
|
|
ScaffoldMessenger.of(this).clearSnackBars();
|
|
|
|
}
|
|
|
|
|
2024-06-30 10:03:02 +00:00
|
|
|
Future<void> showModalDialog(String title, desc) {
|
|
|
|
return showDialog<void>(
|
|
|
|
useRootNavigator: true,
|
|
|
|
context: this,
|
|
|
|
builder: (ctx) => AlertDialog(
|
|
|
|
title: Text(title),
|
|
|
|
content: Text(desc),
|
|
|
|
actions: [
|
|
|
|
TextButton(
|
|
|
|
onPressed: () => Navigator.pop(ctx),
|
|
|
|
child: Text('okay'.tr),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2024-08-02 17:14:42 +00:00
|
|
|
Future<void> showInfoDialog(String title, body) {
|
|
|
|
return showDialog<void>(
|
|
|
|
useRootNavigator: true,
|
|
|
|
context: this,
|
|
|
|
builder: (ctx) => AlertDialog(
|
|
|
|
title: Text(title),
|
|
|
|
content: Text(body),
|
|
|
|
actions: [
|
|
|
|
TextButton(
|
|
|
|
onPressed: () => Navigator.pop(ctx),
|
|
|
|
child: Text('okay'.tr),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2024-05-19 16:08:20 +00:00
|
|
|
Future<void> showErrorDialog(dynamic exception) {
|
2024-08-21 07:25:50 +00:00
|
|
|
Widget content = Text(exception.toString().capitalize!);
|
|
|
|
if (exception is UnauthorizedException) {
|
|
|
|
content = Text('errorHappenedUnauthorized'.tr);
|
|
|
|
}
|
2024-07-17 03:38:25 +00:00
|
|
|
|
2024-05-19 16:08:20 +00:00
|
|
|
return showDialog<void>(
|
2024-06-01 12:18:25 +00:00
|
|
|
useRootNavigator: true,
|
2024-05-19 16:08:20 +00:00
|
|
|
context: this,
|
|
|
|
builder: (ctx) => AlertDialog(
|
|
|
|
title: Text('errorHappened'.tr),
|
2024-08-21 07:25:50 +00:00
|
|
|
content: content,
|
2024-05-19 16:08:20 +00:00
|
|
|
actions: [
|
|
|
|
TextButton(
|
|
|
|
onPressed: () => Navigator.pop(ctx),
|
|
|
|
child: Text('okay'.tr),
|
|
|
|
)
|
|
|
|
],
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|