Files
syncrow-web/lib/pages/visitor_password/view/repeat_widget.dart
2024-08-21 16:58:28 +03:00

86 lines
3.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/common/date_time_widget.dart';
import 'package:syncrow_web/pages/visitor_password/bloc/visitor_password_bloc.dart';
import 'package:syncrow_web/pages/visitor_password/bloc/visitor_password_event.dart';
import 'package:syncrow_web/pages/visitor_password/bloc/visitor_password_state.dart';
import 'package:syncrow_web/utils/color_manager.dart';
class RepeatWidget extends StatelessWidget {
const RepeatWidget({
super.key,
});
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return BlocBuilder<VisitorPasswordBloc, VisitorPasswordState>(
builder: (context, state) {
final visitorBloc = BlocProvider.of<VisitorPasswordBloc>(context);
return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
height: size.height * 0.05, // Adjust height as needed
child: Wrap(
children: visitorBloc.days.map((day) {
return Container(
width: size.width * 0.05,
child: CheckboxListTile(
contentPadding: EdgeInsets.zero,
title: Text(
day['day']!,
style: TextStyle(
fontSize: 12,
color: visitorBloc.selectedDays.contains(day['key'])
? Colors.black
: ColorsManager.blackColor,
),
),
value: visitorBloc.selectedDays.contains(day['key']),
onChanged: (bool? value) {
if (value != null) {
visitorBloc.add(ToggleDaySelectionEvent(key: day['key']!));
}
},
),
);
}).toList(),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: DateTimeWebWidget(
isTime: true,
isRequired: false,
title: '',
size: size,
endTime: () {
visitorBloc.add(SelectTimeEvent(
context: context,
isEffective: false));
Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
});
},
startTime: () {
Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
});
visitorBloc.add(SelectTimeEvent(context: context, isEffective: true));
},
firstString:visitorBloc.effectiveTime ,
secondString: visitorBloc.expirationTime ,
),
),
const SizedBox(height: 20),
],
);
});
}
}