- Implemented fuzzy search across all major screens (dashboard, students, documents, archives, users) and removed search bar sliding animation. - Migrated AuthRepository token storage to shared_preferences for Windows/Android compatibility. - Implemented 5-minute inactivity session expiration and added SessionExpired dialog. - Added seeding scripts (seed.js, seed_docs.js) for robust test data generation. - Fixed Add/Edit Student modal UI layout bug by replacing MainAxisSize.min with max. - Restyled pagination to occupy full horizontal width without bottom spacing. - Moved filter buttons to Floating Action Buttons for better accessibility. - Hid filter FABs, multi-select, and more options when the search bar is active. - Added Document Type filter support in the Recycle Bin modal. - Adjusted popup menu position to PopupMenuPosition.under to prevent off-screen sticking. - Replaced 'Student' column header with 'Folder Path' and added path prefix in file folder cards.
41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
// UI Imports
|
|
import 'ui/screens/splash/splash_screen.dart';
|
|
// Core Imports
|
|
import 'core/theme/app_theme.dart'; // Add this import
|
|
import 'ui/shared/widgets/inactivity_wrapper.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await SystemChrome.setPreferredOrientations([
|
|
DeviceOrientation.portraitUp,
|
|
DeviceOrientation.portraitDown,
|
|
]);
|
|
runApp(const ProviderScope(child: TisRmsApp()));
|
|
}
|
|
|
|
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
|
|
|
class TisRmsApp extends StatelessWidget {
|
|
const TisRmsApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return InactivityWrapper(
|
|
navigatorKey: navigatorKey,
|
|
child: MaterialApp(
|
|
navigatorKey: navigatorKey,
|
|
title: 'TIS RMS',
|
|
debugShowCheckedModeBanner: false,
|
|
|
|
// Clean, centralized theme reference!
|
|
theme: AppTheme.lightTheme,
|
|
|
|
home: const SplashScreen(),
|
|
),
|
|
);
|
|
}
|
|
} |