From a9ea8fd15977064ef5548f3cb48bc492dcb169cf Mon Sep 17 00:00:00 2001 From: Mathias Mogensen <42929161+Xazin@users.noreply.github.com> Date: Tue, 28 Nov 2023 05:45:50 +0200 Subject: [PATCH] fix: changing visibility of property (#4032) * fix: changing visibility of property * fix: null aware ternary --- .../mobile_field_editor.dart | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/database/card/card_property_edit/mobile_field_editor.dart b/frontend/appflowy_flutter/lib/mobile/presentation/database/card/card_property_edit/mobile_field_editor.dart index f16a5cba6f..b98fd349dc 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/database/card/card_property_edit/mobile_field_editor.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/database/card/card_property_edit/mobile_field_editor.dart @@ -49,7 +49,8 @@ class MobileFieldEditor extends StatelessWidget { // for field type edit option final dataController = context.read().typeOptionController; - + final fieldInfoVisibility = + fieldController.getField(field.id)?.visibility; return Padding( padding: const EdgeInsets.all(16), child: Column( @@ -70,8 +71,9 @@ class MobileFieldEditor extends StatelessWidget { ), ), VisibilitySwitch( - isVisible: - state.field.visibility?.isVisibleState() ?? false, + isFieldHidden: !(fieldInfoVisibility != null + ? fieldInfoVisibility.isVisibleState() + : field.visibility), onChanged: () => context.read().add( RowDetailEvent.toggleFieldVisibility( state.field.id, @@ -96,11 +98,11 @@ class MobileFieldEditor extends StatelessWidget { class VisibilitySwitch extends StatefulWidget { const VisibilitySwitch({ super.key, - required this.isVisible, + required this.isFieldHidden, this.onChanged, }); - final bool isVisible; + final bool isFieldHidden; final Function? onChanged; @override @@ -108,17 +110,19 @@ class VisibilitySwitch extends StatefulWidget { } class _VisibilitySwitchState extends State { - late bool _isVisible = widget.isVisible; + late bool _isFieldHidden = widget.isFieldHidden; @override Widget build(BuildContext context) { return Toggle( padding: EdgeInsets.zero, - value: _isVisible, + value: !_isFieldHidden, style: ToggleStyle.mobile, - onChanged: (newValue) { - widget.onChanged?.call(); - setState(() => _isVisible = newValue); + onChanged: (_) { + setState(() { + _isFieldHidden = !_isFieldHidden; + widget.onChanged?.call(); + }); }, ); }