import 'dart:async';
import 'package:comwell_key_app/utils/templates/share_booking_base_template.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:comwell_key_app/share/cubit/share_booking_cubit.dart';
class ShareBookingPage extends StatefulWidget {
const ShareBookingPage({super.key});
@override
State<ShareBookingPage> createState() => _ShareBookingPageState();
}
class _ShareBookingPageState extends State<ShareBookingPage> {
Timer? _errorTimer;
@override
void dispose() {
_errorTimer?.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return BlocListener<ShareBookingCubit, ShareBookingState>(
listener: (context, state) {
if (state.error != null) {
_errorTimer?.cancel();
_errorTimer = Timer(const Duration(seconds: 5), () {
if (mounted) {
context.read<ShareBookingCubit>().clearSelection();
}
});
} else {
_errorTimer?.cancel();
}
},
child: BlocBuilder<ShareBookingCubit, ShareBookingState>(
builder: (context, state) {
final cubit = context.read<ShareBookingCubit>();
return ShareBookingBaseTemplate(
booking: cubit.booking,
onClicked: () {
cubit.createRoomSharingLink(context, cubit.booking);
},
isShared: false,
isLoading: state.isLoading,
error: state.error,
);
},
),
);
}
}