diff --git a/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/select_option_service.dart b/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/select_option_service.dart index ad0a1888b3..34b977b5e3 100644 --- a/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/select_option_service.dart +++ b/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/select_option_service.dart @@ -32,7 +32,7 @@ class SelectOptionService { ); } - Future> insert({ + Future> update({ required String gridId, required String fieldId, required String rowId, @@ -43,7 +43,7 @@ class SelectOptionService { ..fieldId = fieldId ..rowId = rowId; final payload = SelectOptionChangesetPayload.create() - ..insertOption = option + ..updateOption = option ..cellIdentifier = cellIdentifier; return GridEventApplySelectOptionChangeset(payload).send(); } diff --git a/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/selection_editor_bloc.dart b/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/selection_editor_bloc.dart index e7f471dece..d2606b0fdb 100644 --- a/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/selection_editor_bloc.dart +++ b/frontend/app_flowy/lib/workspace/application/grid/cell_bloc/selection_editor_bloc.dart @@ -88,7 +88,7 @@ class SelectOptionEditorBloc extends Bloc children = [ - SelectOptionTag(option: option), + SelectOptionTag(option: option, isSelected: isSelected), const Spacer(), ]; @@ -206,7 +207,7 @@ class _SelectOptionCell extends StatelessWidget { if (onHover) { children.add(FlowyIconButton( - width: 28, + width: 30, onPressed: () => _showEditOptionPannel(context), iconPadding: const EdgeInsets.fromLTRB(4, 4, 4, 4), icon: svgWidget("editor/details", color: theme.iconColor), diff --git a/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pb.dart b/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pb.dart index 5b2576d7eb..d6e0bbcdaf 100644 --- a/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pb.dart +++ b/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pb.dart @@ -205,6 +205,11 @@ enum SelectOptionChangesetPayload_OneOfInsertOption { notSet } +enum SelectOptionChangesetPayload_OneOfUpdateOption { + updateOption, + notSet +} + enum SelectOptionChangesetPayload_OneOfDeleteOption { deleteOption, notSet @@ -215,16 +220,22 @@ class SelectOptionChangesetPayload extends $pb.GeneratedMessage { 2 : SelectOptionChangesetPayload_OneOfInsertOption.insertOption, 0 : SelectOptionChangesetPayload_OneOfInsertOption.notSet }; + static const $core.Map<$core.int, SelectOptionChangesetPayload_OneOfUpdateOption> _SelectOptionChangesetPayload_OneOfUpdateOptionByTag = { + 3 : SelectOptionChangesetPayload_OneOfUpdateOption.updateOption, + 0 : SelectOptionChangesetPayload_OneOfUpdateOption.notSet + }; static const $core.Map<$core.int, SelectOptionChangesetPayload_OneOfDeleteOption> _SelectOptionChangesetPayload_OneOfDeleteOptionByTag = { - 3 : SelectOptionChangesetPayload_OneOfDeleteOption.deleteOption, + 4 : SelectOptionChangesetPayload_OneOfDeleteOption.deleteOption, 0 : SelectOptionChangesetPayload_OneOfDeleteOption.notSet }; static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SelectOptionChangesetPayload', createEmptyInstance: create) ..oo(0, [2]) ..oo(1, [3]) + ..oo(2, [4]) ..aOM<$0.CellIdentifierPayload>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'cellIdentifier', subBuilder: $0.CellIdentifierPayload.create) ..aOM(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'insertOption', subBuilder: SelectOption.create) - ..aOM(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'deleteOption', subBuilder: SelectOption.create) + ..aOM(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'updateOption', subBuilder: SelectOption.create) + ..aOM(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'deleteOption', subBuilder: SelectOption.create) ..hasRequiredFields = false ; @@ -232,6 +243,7 @@ class SelectOptionChangesetPayload extends $pb.GeneratedMessage { factory SelectOptionChangesetPayload({ $0.CellIdentifierPayload? cellIdentifier, SelectOption? insertOption, + SelectOption? updateOption, SelectOption? deleteOption, }) { final _result = create(); @@ -241,6 +253,9 @@ class SelectOptionChangesetPayload extends $pb.GeneratedMessage { if (insertOption != null) { _result.insertOption = insertOption; } + if (updateOption != null) { + _result.updateOption = updateOption; + } if (deleteOption != null) { _result.deleteOption = deleteOption; } @@ -270,8 +285,11 @@ class SelectOptionChangesetPayload extends $pb.GeneratedMessage { SelectOptionChangesetPayload_OneOfInsertOption whichOneOfInsertOption() => _SelectOptionChangesetPayload_OneOfInsertOptionByTag[$_whichOneof(0)]!; void clearOneOfInsertOption() => clearField($_whichOneof(0)); - SelectOptionChangesetPayload_OneOfDeleteOption whichOneOfDeleteOption() => _SelectOptionChangesetPayload_OneOfDeleteOptionByTag[$_whichOneof(1)]!; - void clearOneOfDeleteOption() => clearField($_whichOneof(1)); + SelectOptionChangesetPayload_OneOfUpdateOption whichOneOfUpdateOption() => _SelectOptionChangesetPayload_OneOfUpdateOptionByTag[$_whichOneof(1)]!; + void clearOneOfUpdateOption() => clearField($_whichOneof(1)); + + SelectOptionChangesetPayload_OneOfDeleteOption whichOneOfDeleteOption() => _SelectOptionChangesetPayload_OneOfDeleteOptionByTag[$_whichOneof(2)]!; + void clearOneOfDeleteOption() => clearField($_whichOneof(2)); @$pb.TagNumber(1) $0.CellIdentifierPayload get cellIdentifier => $_getN(0); @@ -296,15 +314,26 @@ class SelectOptionChangesetPayload extends $pb.GeneratedMessage { SelectOption ensureInsertOption() => $_ensure(1); @$pb.TagNumber(3) - SelectOption get deleteOption => $_getN(2); + SelectOption get updateOption => $_getN(2); @$pb.TagNumber(3) - set deleteOption(SelectOption v) { setField(3, v); } + set updateOption(SelectOption v) { setField(3, v); } @$pb.TagNumber(3) - $core.bool hasDeleteOption() => $_has(2); + $core.bool hasUpdateOption() => $_has(2); @$pb.TagNumber(3) - void clearDeleteOption() => clearField(3); + void clearUpdateOption() => clearField(3); @$pb.TagNumber(3) - SelectOption ensureDeleteOption() => $_ensure(2); + SelectOption ensureUpdateOption() => $_ensure(2); + + @$pb.TagNumber(4) + SelectOption get deleteOption => $_getN(3); + @$pb.TagNumber(4) + set deleteOption(SelectOption v) { setField(4, v); } + @$pb.TagNumber(4) + $core.bool hasDeleteOption() => $_has(3); + @$pb.TagNumber(4) + void clearDeleteOption() => clearField(4); + @$pb.TagNumber(4) + SelectOption ensureDeleteOption() => $_ensure(3); } enum SelectOptionCellChangesetPayload_OneOfInsertOptionId { diff --git a/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pbjson.dart b/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pbjson.dart index 7a160d582d..9613b926bd 100644 --- a/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pbjson.dart +++ b/frontend/app_flowy/packages/flowy_sdk/lib/protobuf/flowy-grid/selection_type_option.pbjson.dart @@ -66,16 +66,18 @@ const SelectOptionChangesetPayload$json = const { '2': const [ const {'1': 'cell_identifier', '3': 1, '4': 1, '5': 11, '6': '.CellIdentifierPayload', '10': 'cellIdentifier'}, const {'1': 'insert_option', '3': 2, '4': 1, '5': 11, '6': '.SelectOption', '9': 0, '10': 'insertOption'}, - const {'1': 'delete_option', '3': 3, '4': 1, '5': 11, '6': '.SelectOption', '9': 1, '10': 'deleteOption'}, + const {'1': 'update_option', '3': 3, '4': 1, '5': 11, '6': '.SelectOption', '9': 1, '10': 'updateOption'}, + const {'1': 'delete_option', '3': 4, '4': 1, '5': 11, '6': '.SelectOption', '9': 2, '10': 'deleteOption'}, ], '8': const [ const {'1': 'one_of_insert_option'}, + const {'1': 'one_of_update_option'}, const {'1': 'one_of_delete_option'}, ], }; /// Descriptor for `SelectOptionChangesetPayload`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List selectOptionChangesetPayloadDescriptor = $convert.base64Decode('ChxTZWxlY3RPcHRpb25DaGFuZ2VzZXRQYXlsb2FkEj8KD2NlbGxfaWRlbnRpZmllchgBIAEoCzIWLkNlbGxJZGVudGlmaWVyUGF5bG9hZFIOY2VsbElkZW50aWZpZXISNAoNaW5zZXJ0X29wdGlvbhgCIAEoCzINLlNlbGVjdE9wdGlvbkgAUgxpbnNlcnRPcHRpb24SNAoNZGVsZXRlX29wdGlvbhgDIAEoCzINLlNlbGVjdE9wdGlvbkgBUgxkZWxldGVPcHRpb25CFgoUb25lX29mX2luc2VydF9vcHRpb25CFgoUb25lX29mX2RlbGV0ZV9vcHRpb24='); +final $typed_data.Uint8List selectOptionChangesetPayloadDescriptor = $convert.base64Decode('ChxTZWxlY3RPcHRpb25DaGFuZ2VzZXRQYXlsb2FkEj8KD2NlbGxfaWRlbnRpZmllchgBIAEoCzIWLkNlbGxJZGVudGlmaWVyUGF5bG9hZFIOY2VsbElkZW50aWZpZXISNAoNaW5zZXJ0X29wdGlvbhgCIAEoCzINLlNlbGVjdE9wdGlvbkgAUgxpbnNlcnRPcHRpb24SNAoNdXBkYXRlX29wdGlvbhgDIAEoCzINLlNlbGVjdE9wdGlvbkgBUgx1cGRhdGVPcHRpb24SNAoNZGVsZXRlX29wdGlvbhgEIAEoCzINLlNlbGVjdE9wdGlvbkgCUgxkZWxldGVPcHRpb25CFgoUb25lX29mX2luc2VydF9vcHRpb25CFgoUb25lX29mX3VwZGF0ZV9vcHRpb25CFgoUb25lX29mX2RlbGV0ZV9vcHRpb24='); @$core.Deprecated('Use selectOptionCellChangesetPayloadDescriptor instead') const SelectOptionCellChangesetPayload$json = const { '1': 'SelectOptionCellChangesetPayload', diff --git a/frontend/rust-lib/flowy-grid/src/event_handler.rs b/frontend/rust-lib/flowy-grid/src/event_handler.rs index ec6dc9659e..467c3e334b 100644 --- a/frontend/rust-lib/flowy-grid/src/event_handler.rs +++ b/frontend/rust-lib/flowy-grid/src/event_handler.rs @@ -231,11 +231,16 @@ pub(crate) async fn select_option_changeset_handler( if let Some(mut field_meta) = editor.get_field_meta(&changeset.cell_identifier.field_id).await { let mut type_option = select_option_operation(&field_meta)?; let mut cell_data = None; + if let Some(option) = changeset.insert_option { cell_data = Some(SelectOptionCellChangeset::from_insert(&option.id).cell_data()); type_option.insert_option(option); } + if let Some(option) = changeset.update_option { + type_option.insert_option(option); + } + if let Some(option) = changeset.delete_option { cell_data = Some(SelectOptionCellChangeset::from_delete(&option.id).cell_data()); type_option.delete_option(option); diff --git a/frontend/rust-lib/flowy-grid/src/protobuf/model/selection_type_option.rs b/frontend/rust-lib/flowy-grid/src/protobuf/model/selection_type_option.rs index ea45e6ac6e..fb945be12b 100644 --- a/frontend/rust-lib/flowy-grid/src/protobuf/model/selection_type_option.rs +++ b/frontend/rust-lib/flowy-grid/src/protobuf/model/selection_type_option.rs @@ -663,6 +663,7 @@ pub struct SelectOptionChangesetPayload { pub cell_identifier: ::protobuf::SingularPtrField, // message oneof groups pub one_of_insert_option: ::std::option::Option, + pub one_of_update_option: ::std::option::Option, pub one_of_delete_option: ::std::option::Option, // special fields pub unknown_fields: ::protobuf::UnknownFields, @@ -680,6 +681,11 @@ pub enum SelectOptionChangesetPayload_oneof_one_of_insert_option { insert_option(SelectOption), } +#[derive(Clone,PartialEq,Debug)] +pub enum SelectOptionChangesetPayload_oneof_one_of_update_option { + update_option(SelectOption), +} + #[derive(Clone,PartialEq,Debug)] pub enum SelectOptionChangesetPayload_oneof_one_of_delete_option { delete_option(SelectOption), @@ -772,7 +778,56 @@ impl SelectOptionChangesetPayload { } } - // .SelectOption delete_option = 3; + // .SelectOption update_option = 3; + + + pub fn get_update_option(&self) -> &SelectOption { + match self.one_of_update_option { + ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(ref v)) => v, + _ => ::default_instance(), + } + } + pub fn clear_update_option(&mut self) { + self.one_of_update_option = ::std::option::Option::None; + } + + pub fn has_update_option(&self) -> bool { + match self.one_of_update_option { + ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(..)) => true, + _ => false, + } + } + + // Param is passed by value, moved + pub fn set_update_option(&mut self, v: SelectOption) { + self.one_of_update_option = ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(v)) + } + + // Mutable pointer to the field. + pub fn mut_update_option(&mut self) -> &mut SelectOption { + if let ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(_)) = self.one_of_update_option { + } else { + self.one_of_update_option = ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(SelectOption::new())); + } + match self.one_of_update_option { + ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(ref mut v)) => v, + _ => panic!(), + } + } + + // Take field + pub fn take_update_option(&mut self) -> SelectOption { + if self.has_update_option() { + match self.one_of_update_option.take() { + ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(v)) => v, + _ => panic!(), + } + } else { + SelectOption::new() + } + } + + // .SelectOption delete_option = 4; pub fn get_delete_option(&self) -> &SelectOption { @@ -834,6 +889,11 @@ impl ::protobuf::Message for SelectOptionChangesetPayload { return false; } } + if let Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(ref v)) = self.one_of_update_option { + if !v.is_initialized() { + return false; + } + } if let Some(SelectOptionChangesetPayload_oneof_one_of_delete_option::delete_option(ref v)) = self.one_of_delete_option { if !v.is_initialized() { return false; @@ -856,6 +916,12 @@ impl ::protobuf::Message for SelectOptionChangesetPayload { self.one_of_insert_option = ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_insert_option::insert_option(is.read_message()?)); }, 3 => { + if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited { + return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); + } + self.one_of_update_option = ::std::option::Option::Some(SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(is.read_message()?)); + }, + 4 => { if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited { return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); } @@ -885,6 +951,14 @@ impl ::protobuf::Message for SelectOptionChangesetPayload { }, }; } + if let ::std::option::Option::Some(ref v) = self.one_of_update_option { + match v { + &SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(ref v) => { + let len = v.compute_size(); + my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len; + }, + }; + } if let ::std::option::Option::Some(ref v) = self.one_of_delete_option { match v { &SelectOptionChangesetPayload_oneof_one_of_delete_option::delete_option(ref v) => { @@ -913,10 +987,19 @@ impl ::protobuf::Message for SelectOptionChangesetPayload { }, }; } + if let ::std::option::Option::Some(ref v) = self.one_of_update_option { + match v { + &SelectOptionChangesetPayload_oneof_one_of_update_option::update_option(ref v) => { + os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?; + os.write_raw_varint32(v.get_cached_size())?; + v.write_to_with_cached_sizes(os)?; + }, + }; + } if let ::std::option::Option::Some(ref v) = self.one_of_delete_option { match v { &SelectOptionChangesetPayload_oneof_one_of_delete_option::delete_option(ref v) => { - os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?; + os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?; os.write_raw_varint32(v.get_cached_size())?; v.write_to_with_cached_sizes(os)?; }, @@ -970,6 +1053,11 @@ impl ::protobuf::Message for SelectOptionChangesetPayload { SelectOptionChangesetPayload::has_insert_option, SelectOptionChangesetPayload::get_insert_option, )); + fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SelectOption>( + "update_option", + SelectOptionChangesetPayload::has_update_option, + SelectOptionChangesetPayload::get_update_option, + )); fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SelectOption>( "delete_option", SelectOptionChangesetPayload::has_delete_option, @@ -993,6 +1081,7 @@ impl ::protobuf::Clear for SelectOptionChangesetPayload { fn clear(&mut self) { self.cell_identifier.clear(); self.one_of_insert_option = ::std::option::Option::None; + self.one_of_update_option = ::std::option::Option::None; self.one_of_delete_option = ::std::option::Option::None; self.unknown_fields.clear(); } @@ -1710,24 +1799,26 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \r.SelectOptionR\x07options\x12#\n\rdisable_color\x18\x02\x20\x01(\x08R\ \x0cdisableColor\"\\\n\x0cSelectOption\x12\x0e\n\x02id\x18\x01\x20\x01(\ \tR\x02id\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12(\n\x05color\ - \x18\x03\x20\x01(\x0e2\x12.SelectOptionColorR\x05color\"\xfb\x01\n\x1cSe\ + \x18\x03\x20\x01(\x0e2\x12.SelectOptionColorR\x05color\"\xc9\x02\n\x1cSe\ lectOptionChangesetPayload\x12?\n\x0fcell_identifier\x18\x01\x20\x01(\ \x0b2\x16.CellIdentifierPayloadR\x0ecellIdentifier\x124\n\rinsert_option\ - \x18\x02\x20\x01(\x0b2\r.SelectOptionH\0R\x0cinsertOption\x124\n\rdelete\ - _option\x18\x03\x20\x01(\x0b2\r.SelectOptionH\x01R\x0cdeleteOptionB\x16\ - \n\x14one_of_insert_optionB\x16\n\x14one_of_delete_option\"\xfb\x01\n\ - \x20SelectOptionCellChangesetPayload\x12\x17\n\x07grid_id\x18\x01\x20\ - \x01(\tR\x06gridId\x12\x15\n\x06row_id\x18\x02\x20\x01(\tR\x05rowId\x12\ - \x19\n\x08field_id\x18\x03\x20\x01(\tR\x07fieldId\x12*\n\x10insert_optio\ - n_id\x18\x04\x20\x01(\tH\0R\x0einsertOptionId\x12*\n\x10delete_option_id\ - \x18\x05\x20\x01(\tH\x01R\x0edeleteOptionIdB\x19\n\x17one_of_insert_opti\ - on_idB\x19\n\x17one_of_delete_option_id\"t\n\x13SelectOptionContext\x12'\ - \n\x07options\x18\x01\x20\x03(\x0b2\r.SelectOptionR\x07options\x124\n\ - \x0eselect_options\x18\x02\x20\x03(\x0b2\r.SelectOptionR\rselectOptions*\ - y\n\x11SelectOptionColor\x12\n\n\x06Purple\x10\0\x12\x08\n\x04Pink\x10\ - \x01\x12\r\n\tLightPink\x10\x02\x12\n\n\x06Orange\x10\x03\x12\n\n\x06Yel\ - low\x10\x04\x12\x08\n\x04Lime\x10\x05\x12\t\n\x05Green\x10\x06\x12\x08\n\ - \x04Aqua\x10\x07\x12\x08\n\x04Blue\x10\x08b\x06proto3\ + \x18\x02\x20\x01(\x0b2\r.SelectOptionH\0R\x0cinsertOption\x124\n\rupdate\ + _option\x18\x03\x20\x01(\x0b2\r.SelectOptionH\x01R\x0cupdateOption\x124\ + \n\rdelete_option\x18\x04\x20\x01(\x0b2\r.SelectOptionH\x02R\x0cdeleteOp\ + tionB\x16\n\x14one_of_insert_optionB\x16\n\x14one_of_update_optionB\x16\ + \n\x14one_of_delete_option\"\xfb\x01\n\x20SelectOptionCellChangesetPaylo\ + ad\x12\x17\n\x07grid_id\x18\x01\x20\x01(\tR\x06gridId\x12\x15\n\x06row_i\ + d\x18\x02\x20\x01(\tR\x05rowId\x12\x19\n\x08field_id\x18\x03\x20\x01(\tR\ + \x07fieldId\x12*\n\x10insert_option_id\x18\x04\x20\x01(\tH\0R\x0einsertO\ + ptionId\x12*\n\x10delete_option_id\x18\x05\x20\x01(\tH\x01R\x0edeleteOpt\ + ionIdB\x19\n\x17one_of_insert_option_idB\x19\n\x17one_of_delete_option_i\ + d\"t\n\x13SelectOptionContext\x12'\n\x07options\x18\x01\x20\x03(\x0b2\r.\ + SelectOptionR\x07options\x124\n\x0eselect_options\x18\x02\x20\x03(\x0b2\ + \r.SelectOptionR\rselectOptions*y\n\x11SelectOptionColor\x12\n\n\x06Purp\ + le\x10\0\x12\x08\n\x04Pink\x10\x01\x12\r\n\tLightPink\x10\x02\x12\n\n\ + \x06Orange\x10\x03\x12\n\n\x06Yellow\x10\x04\x12\x08\n\x04Lime\x10\x05\ + \x12\t\n\x05Green\x10\x06\x12\x08\n\x04Aqua\x10\x07\x12\x08\n\x04Blue\ + \x10\x08b\x06proto3\ "; static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT; diff --git a/frontend/rust-lib/flowy-grid/src/protobuf/proto/selection_type_option.proto b/frontend/rust-lib/flowy-grid/src/protobuf/proto/selection_type_option.proto index aee0adcd5e..9940c13e9c 100644 --- a/frontend/rust-lib/flowy-grid/src/protobuf/proto/selection_type_option.proto +++ b/frontend/rust-lib/flowy-grid/src/protobuf/proto/selection_type_option.proto @@ -17,7 +17,8 @@ message SelectOption { message SelectOptionChangesetPayload { CellIdentifierPayload cell_identifier = 1; oneof one_of_insert_option { SelectOption insert_option = 2; }; - oneof one_of_delete_option { SelectOption delete_option = 3; }; + oneof one_of_update_option { SelectOption update_option = 3; }; + oneof one_of_delete_option { SelectOption delete_option = 4; }; } message SelectOptionCellChangesetPayload { string grid_id = 1; diff --git a/frontend/rust-lib/flowy-grid/src/services/field/type_options/selection_type_option.rs b/frontend/rust-lib/flowy-grid/src/services/field/type_options/selection_type_option.rs index 786cd2ce0d..bcf21972ce 100644 --- a/frontend/rust-lib/flowy-grid/src/services/field/type_options/selection_type_option.rs +++ b/frontend/rust-lib/flowy-grid/src/services/field/type_options/selection_type_option.rs @@ -279,12 +279,16 @@ pub struct SelectOptionChangesetPayload { pub insert_option: Option, #[pb(index = 3, one_of)] + pub update_option: Option, + + #[pb(index = 4, one_of)] pub delete_option: Option, } pub struct SelectOptionChangeset { pub cell_identifier: CellIdentifier, pub insert_option: Option, + pub update_option: Option, pub delete_option: Option, } @@ -296,6 +300,7 @@ impl TryInto for SelectOptionChangesetPayload { Ok(SelectOptionChangeset { cell_identifier, insert_option: self.insert_option, + update_option: self.update_option, delete_option: self.delete_option, }) } @@ -324,6 +329,7 @@ pub struct SelectOptionCellChangesetParams { pub field_id: String, pub row_id: String, pub insert_option_id: Option, + pub delete_option_id: Option, }