onufitness_mobile/lib/widgets/network/no_network_widget.dart
2026-01-13 11:36:24 +05:30

67 lines
2.1 KiB
Dart

import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:onufitness/constants/color_constant.dart';
import 'package:onufitness/constants/text_constant.dart';
class NoInternetDialog extends StatelessWidget {
const NoInternetDialog({super.key});
Future<void> retryConnection() async {
final result = await Connectivity().checkConnectivity();
if (result == ConnectivityResult.mobile ||
result == ConnectivityResult.wifi) {
Get.back();
}
}
@override
Widget build(BuildContext context) {
return AlertDialog(
backgroundColor: textFieldFillColor,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
titlePadding: const EdgeInsets.only(top: 24, left: 24, right: 24),
contentPadding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
actionsPadding: const EdgeInsets.only(bottom: 12, right: 12),
title: Row(
children: [
Icon(Icons.wifi_off, color: Color(primaryColor), size: 28),
const SizedBox(width: 10),
Text(
"No Internet Connection",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: regularSizeText,
color: Colors.black87,
),
),
],
),
content: Text(
"You are offline. Please check your internet connection and try again.",
style: TextStyle(fontSize: smallSizeText, color: Colors.black54),
),
actions: [
TextButton(
onPressed: () {
retryConnection();
},
style: TextButton.styleFrom(
backgroundColor: Color(primaryColor),
padding: EdgeInsets.symmetric(horizontal: 20.sp, vertical: 6.sp),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
child: const Text(
"Retry",
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w600),
),
),
],
);
}
}