fix: changing visibility of property (#4032)

* fix: changing visibility of property

* fix: null aware ternary
This commit is contained in:
Mathias Mogensen 2023-11-28 05:45:50 +02:00 committed by GitHub
parent 1e6762b424
commit a9ea8fd159
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -49,7 +49,8 @@ class MobileFieldEditor extends StatelessWidget {
// for field type edit option // for field type edit option
final dataController = final dataController =
context.read<FieldEditorBloc>().typeOptionController; context.read<FieldEditorBloc>().typeOptionController;
final fieldInfoVisibility =
fieldController.getField(field.id)?.visibility;
return Padding( return Padding(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
child: Column( child: Column(
@ -70,8 +71,9 @@ class MobileFieldEditor extends StatelessWidget {
), ),
), ),
VisibilitySwitch( VisibilitySwitch(
isVisible: isFieldHidden: !(fieldInfoVisibility != null
state.field.visibility?.isVisibleState() ?? false, ? fieldInfoVisibility.isVisibleState()
: field.visibility),
onChanged: () => context.read<RowDetailBloc>().add( onChanged: () => context.read<RowDetailBloc>().add(
RowDetailEvent.toggleFieldVisibility( RowDetailEvent.toggleFieldVisibility(
state.field.id, state.field.id,
@ -96,11 +98,11 @@ class MobileFieldEditor extends StatelessWidget {
class VisibilitySwitch extends StatefulWidget { class VisibilitySwitch extends StatefulWidget {
const VisibilitySwitch({ const VisibilitySwitch({
super.key, super.key,
required this.isVisible, required this.isFieldHidden,
this.onChanged, this.onChanged,
}); });
final bool isVisible; final bool isFieldHidden;
final Function? onChanged; final Function? onChanged;
@override @override
@ -108,17 +110,19 @@ class VisibilitySwitch extends StatefulWidget {
} }
class _VisibilitySwitchState extends State<VisibilitySwitch> { class _VisibilitySwitchState extends State<VisibilitySwitch> {
late bool _isVisible = widget.isVisible; late bool _isFieldHidden = widget.isFieldHidden;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Toggle( return Toggle(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
value: _isVisible, value: !_isFieldHidden,
style: ToggleStyle.mobile, style: ToggleStyle.mobile,
onChanged: (newValue) { onChanged: (_) {
widget.onChanged?.call(); setState(() {
setState(() => _isVisible = newValue); _isFieldHidden = !_isFieldHidden;
widget.onChanged?.call();
});
}, },
); );
} }