mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-25 20:09:41 +00:00
fix checkbox issue
This commit is contained in:
@ -42,7 +42,9 @@ class NonBookableSpacesBloc
|
||||
nonBookableSpacesList.data.addAll(currState.nonBookableSpaces.data);
|
||||
|
||||
emit(
|
||||
NonBookableSpacesLoaded(nonBookableSpaces: nonBookableSpacesList),
|
||||
NonBookableSpacesLoaded(
|
||||
nonBookableSpaces: nonBookableSpacesList,
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
emit(
|
||||
|
@ -3,56 +3,45 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/domain/models/bookable_space_model.dart';
|
||||
import 'package:syncrow_web/pages/access_management/manage_bookable_spaces/presentation/blocs/non_bookable_spaces_bloc/non_bookaable_spaces_bloc.dart';
|
||||
|
||||
class CheckBoxSpaceWidget extends StatefulWidget {
|
||||
class CheckBoxSpaceWidget extends StatelessWidget {
|
||||
final BookableSpacemodel nonBookableSpace;
|
||||
final List<BookableSpacemodel> selectedSpaces;
|
||||
|
||||
const CheckBoxSpaceWidget({
|
||||
super.key,
|
||||
required this.nonBookableSpace,
|
||||
required this.selectedSpaces,
|
||||
});
|
||||
|
||||
@override
|
||||
State<CheckBoxSpaceWidget> createState() => _CheckBoxSpaceWidgetState();
|
||||
}
|
||||
|
||||
class _CheckBoxSpaceWidgetState extends State<CheckBoxSpaceWidget> {
|
||||
bool isChecked = false;
|
||||
@override
|
||||
void initState() {
|
||||
isChecked = widget.selectedSpaces.any(
|
||||
(element) => element.spaceUuid == widget.nonBookableSpace.spaceUuid,
|
||||
);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isChecked = selectedSpaces.any(
|
||||
(element) => element.spaceUuid == nonBookableSpace.spaceUuid,
|
||||
);
|
||||
|
||||
return Row(
|
||||
children: [
|
||||
Checkbox(
|
||||
value: isChecked,
|
||||
onChanged: (value) => setState(() {
|
||||
isChecked = value ?? false;
|
||||
if (isChecked) {
|
||||
context.read<NonBookableSpacesBloc>().add(
|
||||
AddToBookableSpaceEvent(
|
||||
nonBookableSpace: widget.nonBookableSpace,
|
||||
),
|
||||
);
|
||||
onChanged: (value) {
|
||||
final bloc = context.read<NonBookableSpacesBloc>();
|
||||
if (value ?? false) {
|
||||
bloc.add(
|
||||
AddToBookableSpaceEvent(
|
||||
nonBookableSpace: nonBookableSpace,
|
||||
),
|
||||
);
|
||||
} else {
|
||||
context.read<NonBookableSpacesBloc>().add(
|
||||
RemoveFromBookableSpaceEvent(
|
||||
bookableSpace: widget.nonBookableSpace,
|
||||
),
|
||||
);
|
||||
bloc.add(
|
||||
RemoveFromBookableSpaceEvent(
|
||||
bookableSpace: nonBookableSpace,
|
||||
),
|
||||
);
|
||||
}
|
||||
}),
|
||||
},
|
||||
),
|
||||
const SizedBox(
|
||||
width: 5,
|
||||
),
|
||||
Expanded(child: Text(widget.nonBookableSpace.spaceName)),
|
||||
const SizedBox(width: 5),
|
||||
Expanded(child: Text(nonBookableSpace.spaceName)),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user