Files
prosappco/lib/screens/lists/user_service_list_screen.dart
T
2024-04-05 18:40:17 -05:00

73 lines
2.3 KiB
Dart

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:injector/injector.dart';
import 'package:prosappco/blocs/service_bloc/service_bloc.dart';
class UserServiceListScreen extends StatefulWidget {
const UserServiceListScreen({super.key});
@override
State<UserServiceListScreen> createState() => _UserServiceListScreenState();
}
class _UserServiceListScreenState extends State<UserServiceListScreen> {
late final ServiceBloc serviceBloc;
@override
void initState() {
super.initState();
serviceBloc = Injector.appInstance.get<ServiceBloc>();
serviceBloc
.add(LoadServicesForUser(FirebaseAuth.instance.currentUser!.uid));
}
@override
Widget build(BuildContext context) {
return BlocProvider<ServiceBloc>(
create: (context) => serviceBloc,
child: Scaffold(
appBar: AppBar(
title: const Text('Mis Servicios'),
),
body: BlocBuilder<ServiceBloc, ServiceState>(
builder: (context, serviceState) {
if (serviceState is ServicesForUserLoaded) {
return serviceState.services.isEmpty
? const Center(
child: Text('No tienes servicios'),
)
: ListView.builder(
itemCount: serviceState.services.length,
itemBuilder: (_, index) {
final serviceInfo = serviceState.services[index];
final user = serviceInfo.user;
final professional = serviceInfo.professional;
final service = serviceInfo.service;
return ListTile(
onTap: () {},
title: Column(
children: [
Text(user.name ?? ''),
Text(professional.identification),
Text(service.address),
],
),
);
},
);
}
return const Center(
child: CircularProgressIndicator(),
);
},
),
),
);
}
}