mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-08 05:47:07 +09:00
GO-5624 Apply style to children blocks
This commit is contained in:
parent
bbfccd43f5
commit
61b125fb04
2 changed files with 5 additions and 35 deletions
|
@ -393,36 +393,6 @@ func (t *textImpl) TurnInto(ctx session.Context, style model.BlockContentTextSty
|
|||
}
|
||||
}
|
||||
|
||||
onlyParents := func(ids []string) (parents []string) {
|
||||
var childrenIds []string
|
||||
for _, id := range ids {
|
||||
if b := s.Pick(id); b != nil {
|
||||
childrenIds = append(childrenIds, b.Model().ChildrenIds...)
|
||||
}
|
||||
}
|
||||
parents = ids[:0]
|
||||
for _, id := range ids {
|
||||
if slice.FindPos(childrenIds, id) == -1 {
|
||||
parents = append(parents, id)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
switch style {
|
||||
case model.BlockContentText_Toggle,
|
||||
model.BlockContentText_Checkbox,
|
||||
model.BlockContentText_Marked,
|
||||
model.BlockContentText_Numbered,
|
||||
model.BlockContentText_Header1,
|
||||
model.BlockContentText_Header2,
|
||||
model.BlockContentText_Header3,
|
||||
model.BlockContentText_Code,
|
||||
model.BlockContentText_Callout,
|
||||
model.BlockContentText_Quote:
|
||||
ids = onlyParents(ids)
|
||||
}
|
||||
|
||||
for _, id := range ids {
|
||||
var textBlock text.Block
|
||||
var ok bool
|
||||
|
|
|
@ -495,7 +495,7 @@ func TestTextImpl_TurnInto(t *testing.T) {
|
|||
assert.Equal(t, model.BlockContentText_Header4, sb.Doc.Pick("1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Header4, sb.Doc.Pick("1").Model().GetText().Style)
|
||||
})
|
||||
t.Run("apply only for parents", func(t *testing.T) {
|
||||
t.Run("apply both for parents and children", func(t *testing.T) {
|
||||
ctx := session.NewContext()
|
||||
sb := smarttest.New("test")
|
||||
sb.AddBlock(simple.New(&model.Block{Id: "test", ChildrenIds: []string{"1", "2"}})).
|
||||
|
@ -508,8 +508,8 @@ func TestTextImpl_TurnInto(t *testing.T) {
|
|||
require.NoError(t, tb.TurnInto(ctx, model.BlockContentText_Checkbox, "1", "1.1", "2", "2.2"))
|
||||
assert.Equal(t, model.BlockContentText_Checkbox, sb.Doc.Pick("1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Checkbox, sb.Doc.Pick("1").Model().GetText().Style)
|
||||
assert.NotEqual(t, model.BlockContentText_Checkbox, sb.Doc.Pick("1.1").Model().GetText().Style)
|
||||
assert.NotEqual(t, model.BlockContentText_Checkbox, sb.Doc.Pick("2.2").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Checkbox, sb.Doc.Pick("1.1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Checkbox, sb.Doc.Pick("2.2").Model().GetText().Style)
|
||||
})
|
||||
t.Run("move children up", func(t *testing.T) {
|
||||
sb := smarttest.New("test")
|
||||
|
@ -523,8 +523,8 @@ func TestTextImpl_TurnInto(t *testing.T) {
|
|||
require.NoError(t, tb.TurnInto(nil, model.BlockContentText_Code, "1", "1.1", "2", "2.2"))
|
||||
assert.Equal(t, model.BlockContentText_Code, sb.Doc.Pick("1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Code, sb.Doc.Pick("2").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Paragraph, sb.Doc.Pick("1.1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Paragraph, sb.Doc.Pick("2.2").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Code, sb.Doc.Pick("1.1").Model().GetText().Style)
|
||||
assert.Equal(t, model.BlockContentText_Code, sb.Doc.Pick("2.2").Model().GetText().Style)
|
||||
assert.Equal(t, []string{"1", "1.1", "2", "2.2"}, sb.Doc.Pick("test").Model().ChildrenIds)
|
||||
})
|
||||
t.Run("turn link into text", func(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue