fix(staff_home): fix compilation errors

- Removed flutter_riverpod dependency and usage
- Removed go_router dependency and usage (replaced with Modular)
- Fixed syntax errors in WorkerHomePage
- Updated dependencies (google_fonts, intl)
- Fixed undefined identifier errors by moving localization access
- Removed unused methods in ShiftCard
This commit is contained in:
Achintha Isuru
2026-01-24 12:19:32 -05:00
parent 13265d844e
commit 5c82ea0483
6 changed files with 27 additions and 82 deletions

View File

@@ -1,11 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:go_router/go_router.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:core_localization/core_localization.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:staff_home/src/presentation/navigation/home_navigator.dart';
import 'package:staff_home/src/theme.dart';
import 'package:staff_home/src/presentation/widgets/shift_card.dart';
import 'package:staff_home/src/presentation/widgets/worker/auto_match_toggle.dart';
@@ -17,27 +16,24 @@ import 'package:staff_home/src/domain/models/shift.dart';
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
import 'package:staff_home/src/data/repositories/home_repository_impl.dart';
class WorkerHomePage extends ConsumerStatefulWidget {
class WorkerHomePage extends StatefulWidget {
const WorkerHomePage({super.key});
@override
ConsumerState<WorkerHomePage> createState() => _WorkerHomePageState();
State<WorkerHomePage> createState() => _WorkerHomePageState();
}
class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
class _WorkerHomePageState extends State<WorkerHomePage> {
bool _autoMatchEnabled = false;
final bool _isProfileComplete = false; // Added for mock profile completion
@override
Widget build(BuildContext context) {
final i18n = t.staff.home;
final headerI18n = i18n.header;
final bannersI18n = i18n.banners;
final quickI18n = i18n.quick_actions;
final sectionsI18n = i18n.sections;
final emptyI18n = i18n.empty_states;
final pendingI18n = i18n.pending_payment;
final recI18n = i18n.recommended_card;
return BlocProvider(
create: (_) => HomeCubit(
// provide repository implementation backed by mock service for now
@@ -135,9 +131,8 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
_buildSectionHeader(
sectionsI18n.todays_shift,
shifts.isNotEmpty
? sectionsI18n.scheduled_count.replaceAll(
r'$count',
'${shifts.length}',
? sectionsI18n.scheduled_count(
count: shifts.length,
)
: null,
),
@@ -359,6 +354,7 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
}
Widget _buildHeader() {
final headerI18n = t.staff.home.header;
return Padding(
padding: const EdgeInsets.fromLTRB(20, 24, 20, 16),
child: Row(
@@ -565,8 +561,9 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
}
Widget _buildPendingPaymentCard() {
final pendingI18n = t.staff.home.pending_payment;
return GestureDetector(
onTap: () => context.go('/payments'),
onTap: () => Modular.to.pushPayments(),
child: Container(
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
@@ -650,6 +647,7 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
}
Widget _buildRecommendedCard(Shift shift) {
final recI18n = t.staff.home.recommended_card;
final duration = 8;
final totalPay = duration * shift.hourlyRate;
return GestureDetector(
@@ -657,7 +655,7 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
recI18n.applied_for.replaceAll(r'$title', shift.title),
recI18n.applied_for(title: shift.title),
),
backgroundColor: Colors.green,
duration: const Duration(seconds: 2),
@@ -810,9 +808,7 @@ class _WorkerHomePageState extends ConsumerState<WorkerHomePage> {
),
const SizedBox(width: 4),
Text(
recI18n.time_range
.replaceAll(r'$start', shift.startTime)
.replaceAll(r'$end', shift.endTime),
recI18n.time_range(start: shift.startTime, end: shift.endTime),
style: const TextStyle(
fontSize: 12,
color: AppColors.krowMuted,

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:intl/intl.dart';
@@ -65,24 +65,6 @@ class _ShiftCardState extends State<ShiftCard> {
}
}
Map<String, dynamic> _calculateDuration() {
if (widget.shift.startTime.isEmpty || widget.shift.endTime.isEmpty) {
return {'hours': 0, 'breakTime': '1 hour'};
}
try {
final startParts = widget.shift.startTime
.split(':')
.map(int.parse)
.toList();
final endParts = widget.shift.endTime.split(':').map(int.parse).toList();
double hours =
(endParts[0] - startParts[0]) + (endParts[1] - startParts[1]) / 60;
if (hours < 0) hours += 24;
return {'hours': hours.round(), 'breakTime': '1 hour'};
} catch (e) {
return {'hours': 0, 'breakTime': '1 hour'};
}
}
@override
Widget build(BuildContext context) {
@@ -92,9 +74,9 @@ class _ShiftCardState extends State<ShiftCard> {
? null
: () {
setState(() => isExpanded = !isExpanded);
GoRouter.of(context).push(
Modular.to.pushNamed(
'/shift-details/${widget.shift.id}',
extra: widget.shift,
arguments: widget.shift,
);
},
child: Container(
@@ -458,40 +440,5 @@ class _ShiftCardState extends State<ShiftCard> {
);
}
Widget _buildDetailRow(IconData icon, String label, bool? value) {
return Container(
padding: const EdgeInsets.symmetric(vertical: 12),
decoration: const BoxDecoration(
border: Border(bottom: BorderSide(color: AppColors.krowBorder)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Icon(icon, size: 16, color: AppColors.krowMuted),
const SizedBox(width: 8),
Text(
label,
style: const TextStyle(
color: AppColors.krowMuted,
fontSize: 14,
),
),
],
),
Text(
value == true ? 'Yes' : 'No',
style: TextStyle(
color: value == true
? const Color(0xFF10B981)
: AppColors.krowMuted,
fontWeight: FontWeight.w600,
fontSize: 14,
),
),
],
),
);
}
}

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:go_router/go_router.dart';
import 'dart:math' as math;
import 'package:core_localization/core_localization.dart';
@@ -19,7 +19,7 @@ class BenefitsWidget extends StatelessWidget {
border: Border.all(color: Colors.grey.shade100),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
color: Colors.black.withValues(alpha: 0.05),
blurRadius: 2,
offset: const Offset(0, 1),
),
@@ -38,7 +38,7 @@ class BenefitsWidget extends StatelessWidget {
),
),
GestureDetector(
onTap: () => context.push('/benefits'),
onTap: () => Modular.to.pushNamed('/benefits'),
child: Row(
children: [
Text(

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:core_localization/core_localization.dart';
class ImproveYourselfWidget extends StatelessWidget {
@@ -51,7 +51,7 @@ class ImproveYourselfWidget extends StatelessWidget {
Widget _buildCard(BuildContext context, Map<String, String> item) {
return GestureDetector(
onTap: () => context.push(item['page']!),
onTap: () => Modular.to.pushNamed(item['page']!),
child: Container(
width: 160,
margin: const EdgeInsets.only(right: 12),
@@ -61,7 +61,7 @@ class ImproveYourselfWidget extends StatelessWidget {
border: Border.all(color: Colors.grey.shade100),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
color: Colors.black.withValues(alpha: 0.05),
blurRadius: 2,
offset: const Offset(0, 1),
),

View File

@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:core_localization/core_localization.dart';
class MoreWaysToUseKrowWidget extends StatelessWidget {
@@ -49,7 +49,7 @@ class MoreWaysToUseKrowWidget extends StatelessWidget {
Widget _buildCard(BuildContext context, Map<String, String> item) {
return GestureDetector(
onTap: () => context.push(item['page']!),
onTap: () => Modular.to.pushNamed(item['page']!),
child: Container(
width: 160,
margin: const EdgeInsets.only(right: 12),
@@ -59,7 +59,7 @@ class MoreWaysToUseKrowWidget extends StatelessWidget {
border: Border.all(color: Colors.grey.shade100),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
color: Colors.black.withValues(alpha: 0.05),
blurRadius: 2,
offset: const Offset(0, 1),
),

View File

@@ -12,10 +12,12 @@ dependencies:
flutter:
sdk: flutter
flutter_bloc: ^8.1.0
bloc: ^8.1.0
flutter_modular: ^6.3.0
equatable: ^2.0.5
lucide_icons: ^0.257.0
intl: ^0.20.0
google_fonts: ^7.0.0
# Architecture Packages
design_system: