Implement role-based navigation in MeetingTimeDialog

- Added user role retrieval from AuthViewModel in MeetingTimeDialog.
- Updated navigation logic to conditionally push routes based on user role (admin or non-admin) when confirming meeting time.
This commit is contained in:
amirrezaghabeli
2025-10-14 10:24:06 +03:30
parent 13dbb5fae5
commit cc16d28195
@@ -1,8 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/routes/app_routes.dart'; import 'package:tm_app/core/routes/app_routes.dart';
import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/auth_view_model.dart';
import 'package:tm_app/views/detail/strings/tender_details_strings.dart'; import 'package:tm_app/views/detail/strings/tender_details_strings.dart';
class MeetingTimeDialog extends StatefulWidget { class MeetingTimeDialog extends StatefulWidget {
@@ -27,6 +29,7 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final userRole = context.read<AuthViewModel>().userRole;
return Dialog( return Dialog(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
@@ -89,7 +92,11 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
onTap: () { onTap: () {
widget.onConfirm(type); widget.onConfirm(type);
context.pop(); context.pop();
const CompletionOfDocumentsRouteData().push(context); userRole == Role.admin
? const CompletionOfDocumentsRouteData().push(context)
: const FinalCompletionOfDocumentsRouteData().push(
context,
);
}, },
child: Container( child: Container(
width: double.infinity, width: double.infinity,