Files
2026-05-27 03:11:45 -04:00

141 lines
4.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../../../widgets/app_back_button.dart';
class RoleScreen extends StatelessWidget {
const RoleScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const AppBackButton(fallbackRoute: '/landing'),
const SizedBox(height: 24),
Container(
width: 60,
height: 60,
decoration: BoxDecoration(
color: const Color(0xFF1A56DB),
borderRadius: BorderRadius.circular(16),
),
child: const Icon(Icons.directions_car,
size: 32, color: Colors.white),
),
const SizedBox(height: 24),
const Text(
'Welcome to\nCar Rental',
style: TextStyle(
fontSize: 32,
fontWeight: FontWeight.bold,
color: Color(0xFF111928),
height: 1.2,
),
),
const SizedBox(height: 12),
const Text(
'How would you like to continue?',
style: TextStyle(fontSize: 16, color: Color(0xFF6B7280)),
),
const SizedBox(height: 48),
_RoleCard(
icon: Icons.dashboard_rounded,
title: 'Company Dashboard',
subtitle: 'Manage fleet, reservations & customers',
color: const Color(0xFF1A56DB),
onTap: () => context.push('/login/employee'),
),
const SizedBox(height: 16),
_RoleCard(
icon: Icons.search_rounded,
title: 'Browse & Reserve',
subtitle: 'Find and book a vehicle',
color: const Color(0xFF0E9F6E),
onTap: () => context.push('/client'),
),
],
),
),
),
);
}
}
class _RoleCard extends StatelessWidget {
final IconData icon;
final String title;
final String subtitle;
final Color color;
final VoidCallback onTap;
const _RoleCard({
required this.icon,
required this.title,
required this.subtitle,
required this.color,
required this.onTap,
});
@override
Widget build(BuildContext context) {
return Material(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
child: InkWell(
onTap: onTap,
borderRadius: BorderRadius.circular(16),
child: Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
border: Border.all(color: const Color(0xFFE5E7EB)),
),
child: Row(
children: [
Container(
width: 52,
height: 52,
decoration: BoxDecoration(
color: color.withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(12),
),
child: Icon(icon, color: color, size: 26),
),
const SizedBox(width: 16),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: const TextStyle(
fontWeight: FontWeight.w600,
fontSize: 16,
color: Color(0xFF111928),
),
),
const SizedBox(height: 4),
Text(
subtitle,
style: const TextStyle(
fontSize: 13,
color: Color(0xFF6B7280),
),
),
],
),
),
Icon(Icons.arrow_forward_ios_rounded,
size: 16, color: color),
],
),
),
),
);
}
}