mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: create field
This commit is contained in:
@ -1,8 +1,9 @@
|
||||
use crate::manager::GridManager;
|
||||
use flowy_error::FlowyError;
|
||||
use flowy_grid_data_model::entities::{
|
||||
CellMetaChangeset, CreateFieldPayload, CreateRowPayload, Field, FieldChangeset, Grid, GridId, QueryFieldPayload,
|
||||
QueryGridBlocksPayload, QueryRowPayload, RepeatedField, RepeatedGridBlock, Row,
|
||||
CellMetaChangeset, CreateEditFieldContextParams, CreateFieldPayload, CreateRowPayload, EditFieldContext, Field,
|
||||
FieldChangeset, Grid, GridId, QueryFieldPayload, QueryGridBlocksPayload, QueryRowPayload, RepeatedField,
|
||||
RepeatedGridBlock, Row,
|
||||
};
|
||||
use flowy_grid_data_model::parser::{
|
||||
CreateFieldParams, CreateRowParams, QueryFieldParams, QueryGridBlocksParams, QueryRowParams,
|
||||
@ -72,14 +73,23 @@ pub(crate) async fn create_field_handler(
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(data, manager), err)]
|
||||
pub(crate) async fn create_default_field_handler(
|
||||
data: Data<GridId>,
|
||||
pub(crate) async fn create_field_edit_context_handler(
|
||||
data: Data<CreateEditFieldContextParams>,
|
||||
manager: AppData<Arc<GridManager>>,
|
||||
) -> DataResult<Field, FlowyError> {
|
||||
let grid_id: GridId = data.into_inner();
|
||||
let editor = manager.get_grid_editor(grid_id.as_ref())?;
|
||||
let field = editor.make_default_field().await?;
|
||||
data_result(field)
|
||||
) -> DataResult<EditFieldContext, FlowyError> {
|
||||
let params: CreateEditFieldContextParams = data.into_inner();
|
||||
let editor = manager.get_grid_editor(¶ms.grid_id)?;
|
||||
let field_meta = editor.make_field_meta_from_ty(¶ms.field_type).await?;
|
||||
let type_option_data = field_meta.type_option.as_bytes().to_vec();
|
||||
let field: Field = field_meta.into();
|
||||
|
||||
let edit_context = EditFieldContext {
|
||||
grid_id: params.grid_id,
|
||||
grid_field: field,
|
||||
type_option_data,
|
||||
};
|
||||
|
||||
data_result(edit_context)
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(data, manager), err)]
|
||||
|
@ -13,7 +13,7 @@ pub fn create(grid_manager: Arc<GridManager>) -> Module {
|
||||
.event(GridEvent::GetFields, get_fields_handler)
|
||||
.event(GridEvent::UpdateField, update_field_handler)
|
||||
.event(GridEvent::CreateField, create_field_handler)
|
||||
.event(GridEvent::CreateDefaultField, create_default_field_handler)
|
||||
.event(GridEvent::CreateEditFieldContext, create_field_edit_context_handler)
|
||||
.event(GridEvent::CreateRow, create_row_handler)
|
||||
.event(GridEvent::GetRow, get_row_handler)
|
||||
.event(GridEvent::UpdateCell, update_cell_handler);
|
||||
@ -39,8 +39,8 @@ pub enum GridEvent {
|
||||
#[event(input = "CreateFieldPayload")]
|
||||
CreateField = 12,
|
||||
|
||||
#[event(input = "GridId", output = "Field")]
|
||||
CreateDefaultField = 13,
|
||||
#[event(input = "CreateEditFieldContextParams", output = "EditFieldContext")]
|
||||
CreateEditFieldContext = 13,
|
||||
|
||||
#[event(input = "CreateRowPayload", output = "Row")]
|
||||
CreateRow = 21,
|
||||
|
@ -30,7 +30,7 @@ pub enum GridEvent {
|
||||
GetFields = 10,
|
||||
UpdateField = 11,
|
||||
CreateField = 12,
|
||||
CreateDefaultField = 13,
|
||||
CreateEditFieldContext = 13,
|
||||
CreateRow = 21,
|
||||
GetRow = 22,
|
||||
UpdateCell = 30,
|
||||
@ -48,7 +48,7 @@ impl ::protobuf::ProtobufEnum for GridEvent {
|
||||
10 => ::std::option::Option::Some(GridEvent::GetFields),
|
||||
11 => ::std::option::Option::Some(GridEvent::UpdateField),
|
||||
12 => ::std::option::Option::Some(GridEvent::CreateField),
|
||||
13 => ::std::option::Option::Some(GridEvent::CreateDefaultField),
|
||||
13 => ::std::option::Option::Some(GridEvent::CreateEditFieldContext),
|
||||
21 => ::std::option::Option::Some(GridEvent::CreateRow),
|
||||
22 => ::std::option::Option::Some(GridEvent::GetRow),
|
||||
30 => ::std::option::Option::Some(GridEvent::UpdateCell),
|
||||
@ -63,7 +63,7 @@ impl ::protobuf::ProtobufEnum for GridEvent {
|
||||
GridEvent::GetFields,
|
||||
GridEvent::UpdateField,
|
||||
GridEvent::CreateField,
|
||||
GridEvent::CreateDefaultField,
|
||||
GridEvent::CreateEditFieldContext,
|
||||
GridEvent::CreateRow,
|
||||
GridEvent::GetRow,
|
||||
GridEvent::UpdateCell,
|
||||
@ -95,11 +95,11 @@ impl ::protobuf::reflect::ProtobufValue for GridEvent {
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x0fevent_map.proto*\xa3\x01\n\tGridEvent\x12\x0f\n\x0bGetGridData\x10\
|
||||
\n\x0fevent_map.proto*\xa7\x01\n\tGridEvent\x12\x0f\n\x0bGetGridData\x10\
|
||||
\0\x12\x11\n\rGetGridBlocks\x10\x01\x12\r\n\tGetFields\x10\n\x12\x0f\n\
|
||||
\x0bUpdateField\x10\x0b\x12\x0f\n\x0bCreateField\x10\x0c\x12\x16\n\x12Cr\
|
||||
eateDefaultField\x10\r\x12\r\n\tCreateRow\x10\x15\x12\n\n\x06GetRow\x10\
|
||||
\x16\x12\x0e\n\nUpdateCell\x10\x1eb\x06proto3\
|
||||
\x0bUpdateField\x10\x0b\x12\x0f\n\x0bCreateField\x10\x0c\x12\x1a\n\x16Cr\
|
||||
eateEditFieldContext\x10\r\x12\r\n\tCreateRow\x10\x15\x12\n\n\x06GetRow\
|
||||
\x10\x16\x12\x0e\n\nUpdateCell\x10\x1eb\x06proto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -6,7 +6,7 @@ enum GridEvent {
|
||||
GetFields = 10;
|
||||
UpdateField = 11;
|
||||
CreateField = 12;
|
||||
CreateDefaultField = 13;
|
||||
CreateEditFieldContext = 13;
|
||||
CreateRow = 21;
|
||||
GetRow = 22;
|
||||
UpdateCell = 30;
|
||||
|
@ -62,11 +62,10 @@ impl ClientGridEditor {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn make_default_field(&self) -> FlowyResult<Field> {
|
||||
let field_type = FieldType::default();
|
||||
pub async fn make_field_meta_from_ty(&self, field_type: &FieldType) -> FlowyResult<FieldMeta> {
|
||||
let name = format!("Property {}", self.pad.read().await.fields().len());
|
||||
let field_meta = FieldBuilder::from_field_type(&field_type).name(&name).build();
|
||||
Ok(field_meta.into())
|
||||
Ok(field_meta)
|
||||
}
|
||||
|
||||
pub async fn contain_field(&self, field_id: &str) -> bool {
|
||||
|
Reference in New Issue
Block a user