mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: refactor move field func
This commit is contained in:
@ -6,6 +6,7 @@ use flowy_grid_data_model::entities::{
|
|||||||
gen_grid_id, FieldChangesetParams, FieldMeta, FieldOrder, FieldType, GridBlockMeta, GridBlockMetaChangeset,
|
gen_grid_id, FieldChangesetParams, FieldMeta, FieldOrder, FieldType, GridBlockMeta, GridBlockMetaChangeset,
|
||||||
GridMeta,
|
GridMeta,
|
||||||
};
|
};
|
||||||
|
use lib_infra::util::move_vec_element;
|
||||||
use lib_ot::core::{OperationTransformable, PlainTextAttributes, PlainTextDelta, PlainTextDeltaBuilder};
|
use lib_ot::core::{OperationTransformable, PlainTextAttributes, PlainTextDelta, PlainTextDeltaBuilder};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -208,20 +209,22 @@ impl GridMetaPad {
|
|||||||
pub fn move_field(
|
pub fn move_field(
|
||||||
&mut self,
|
&mut self,
|
||||||
field_id: &str,
|
field_id: &str,
|
||||||
_from_index: usize,
|
from_index: usize,
|
||||||
to_index: usize,
|
to_index: usize,
|
||||||
) -> CollaborateResult<Option<GridChangeset>> {
|
) -> CollaborateResult<Option<GridChangeset>> {
|
||||||
self.modify_grid(
|
self.modify_grid(|grid_meta| {
|
||||||
|grid_meta| match grid_meta.fields.iter().position(|field| field.id == field_id) {
|
match move_vec_element(
|
||||||
None => Ok(None),
|
&mut grid_meta.fields,
|
||||||
Some(index) => {
|
|field| field.id == field_id,
|
||||||
// debug_assert_eq!(index, from_index);
|
from_index,
|
||||||
let field_meta = grid_meta.fields.remove(index);
|
to_index,
|
||||||
grid_meta.fields.insert(to_index, field_meta);
|
|
||||||
Ok(Some(()))
|
|
||||||
}
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
.map_err(internal_error)?
|
||||||
|
{
|
||||||
|
true => Ok(Some(())),
|
||||||
|
false => Ok(None),
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn contain_field(&self, field_id: &str) -> bool {
|
pub fn contain_field(&self, field_id: &str) -> bool {
|
||||||
|
Reference in New Issue
Block a user