Add board navigation and assets

- Introduced new board-related assets in AssetsManager.
- Updated NetworkManager to increase connection and receive timeouts to 20 seconds.
- Added BoardRouteData for navigation to the BoardScreen.
- Updated app routes to include the new board route.
- Modified DesktopNavigationWidget to include a navigation item for the board.
- Added a new string constant for the board label in TendersStrings.
This commit is contained in:
amirrezaghabeli
2025-11-10 16:14:50 +03:30
parent 8dc5e0ed29
commit e03c87f99d
9 changed files with 529 additions and 6 deletions
+2
View File
@@ -16,6 +16,8 @@ class AssetsManager {
static const contracts = 'assets/icons/icon_contracts.svg';
static const notify = 'assets/icons/notify_icon.svg';
static const notifyActive = 'assets/icons/notify_icon_active.svg';
static const board = 'assets/icons/board.svg';
static const boardActive = 'assets/icons/board_active.svg';
// login page
static const logo = 'assets/pngs/logo.png';
+2 -2
View File
@@ -21,8 +21,8 @@ class NetworkManager {
: mainDio = Dio(
BaseOptions(
baseUrl: AppConfig.apiBaseUrl,
connectTimeout: const Duration(seconds: 10),
receiveTimeout: const Duration(seconds: 10),
connectTimeout: const Duration(seconds: 20),
receiveTimeout: const Duration(seconds: 20),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
+11
View File
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tm_app/views/board/board_screen.dart';
import 'package:tm_app/views/completion_of_documents/pages/complectopn_of_documents_screen.dart';
import 'package:tm_app/views/detail/pages/detail_screen.dart';
import 'package:tm_app/views/forget_password_create/pages/forgot_password_create_screen.dart';
@@ -265,6 +266,16 @@ class LikedTendersRouteData extends GoRouteData with _$LikedTendersRouteData {
}
}
@TypedGoRoute<BoardRouteData>(path: '/board')
class BoardRouteData extends GoRouteData with _$BoardRouteData {
const BoardRouteData();
@override
Widget build(BuildContext context, GoRouterState state) {
return const BoardScreen();
}
}
// @TypedGoRoute<CompletionOfDocumentsRouteData>(
// path: '/completion-of-documents',
// )
+25
View File
@@ -14,6 +14,7 @@ List<RouteBase> get $appRoutes => [
$finalCompletionOfDocumentsRouteData,
$completionOfDocumentsRouteData,
$likedTendersRouteData,
$boardRouteData,
$tenderDetailRouteData,
$forgotPasswordRouteData,
$forgotPasswordOtpRouteData,
@@ -353,6 +354,30 @@ mixin _$LikedTendersRouteData on GoRouteData {
void replace(BuildContext context) => context.replace(location);
}
RouteBase get $boardRouteData =>
GoRouteData.$route(path: '/board', factory: _$BoardRouteData._fromState);
mixin _$BoardRouteData on GoRouteData {
static BoardRouteData _fromState(GoRouterState state) =>
const BoardRouteData();
@override
String get location => GoRouteData.$location('/board');
@override
void go(BuildContext context) => context.go(location);
@override
Future<T?> push<T>(BuildContext context) => context.push<T>(location);
@override
void pushReplacement(BuildContext context) =>
context.pushReplacement(location);
@override
void replace(BuildContext context) => context.replace(location);
}
RouteBase get $tenderDetailRouteData => GoRouteData.$route(
path: '/tender-detail',