1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-09 17:44:59 +09:00

[feat-GO-212-changes-for-kanban] fix changes

This commit is contained in:
Pavel Zavyalov 2022-09-20 20:02:34 +06:00
parent 3b091d333d
commit 43e8e222b2
No known key found for this signature in database
GPG key ID: D12476F8A1107A26
3 changed files with 15 additions and 6 deletions

View file

@ -220,7 +220,7 @@ func (s *State) applyEvent(ev *pb.EventMessage) (err error) {
for _, order := range b.Model().GetDataview().ObjectOrders {
if order.ViewId == o.BlockDataViewObjectOrderUpdate.ViewId && order.GroupId == o.BlockDataViewObjectOrderUpdate.GroupId {
changes := o.BlockDataViewObjectOrderUpdate.GetSliceChanges()
changedIds := slice.ApplyChanges(order.ObjectIds, pbtypes.EventToSliceChange(changes))
changedIds := slice.ApplyChanges(order.ObjectIds, pbtypes.EventsToSliceChange(changes))
order.ObjectIds = changedIds
}
}

View file

@ -114,11 +114,11 @@ func (d *Dataview) Diff(b simple.Block) (msgs []simple.EventMessage, err error)
for _, order2 := range dv.content.ObjectOrders {
var found bool
var changed bool
var changes []slice.Change
for _, order1 := range d.content.ObjectOrders {
if order1.ViewId == order2.ViewId && order1.GroupId == order2.GroupId {
found = true
changed = !proto.Equal(order1, order2)
changes = slice.Diff(order1.ObjectIds, order2.ObjectIds)
break
}
}
@ -135,7 +135,7 @@ func (d *Dataview) Diff(b simple.Block) (msgs []simple.EventMessage, err error)
}}}})
}
if changed {
if len(changes) > 0 {
msgs = append(msgs,
simple.EventMessage{
Msg: &pb.EventMessage{Value: &pb.EventMessageValueOfBlockDataViewObjectOrderUpdate{
@ -143,7 +143,7 @@ func (d *Dataview) Diff(b simple.Block) (msgs []simple.EventMessage, err error)
Id: dv.Id,
ViewId: order2.ViewId,
GroupId: order2.GroupId,
SliceChanges: []*pb.EventBlockDataviewSliceChange{{Op: pb.EventBlockDataview_SliceOperationReplace, Ids: order2.ObjectIds}},
SliceChanges: pbtypes.SliceChangeToEvents(changes),
}}}})
}
}

View file

@ -205,7 +205,7 @@ func StructNotNilKeys(st *types.Struct) (keys []string) {
}
func EventToSliceChange(changes []*pb.EventBlockDataviewSliceChange) []slice.Change {
func EventsToSliceChange(changes []*pb.EventBlockDataviewSliceChange) []slice.Change {
var res []slice.Change
for _, eventCh := range changes {
res = append(res, slice.Change{Op: slice.DiffOperation(eventCh.Op), Ids: eventCh.Ids, AfterId: eventCh.AfterId})
@ -213,3 +213,12 @@ func EventToSliceChange(changes []*pb.EventBlockDataviewSliceChange) []slice.Cha
return res
}
func SliceChangeToEvents(changes []slice.Change) []*pb.EventBlockDataviewSliceChange {
var res []*pb.EventBlockDataviewSliceChange
for _, sliceCh := range changes {
res = append(res, &pb.EventBlockDataviewSliceChange{Op: pb.EventBlockDataviewSliceOperation(sliceCh.Op), Ids: sliceCh.Ids, AfterId: sliceCh.AfterId})
}
return res
}