diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 8b37d4baa..d448acd14 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1231,9 +1231,18 @@ func getRefDefIDs(node *ast.Node) (refDefIDs []string) { func pushSetDefRefCount(rootID, blockID string) { sql.WaitForWritingDatabase() - refCounts := sql.QueryRefCount([]string{blockID}) + bt := treenode.GetBlockTree(blockID) + if nil == bt { + return + } + + refCounts := sql.QueryRootChildrenRefCount(bt.RootID) refCount := refCounts[blockID] - util.PushSetDefRefCount(rootID, blockID, refCount) + var rootRefCount int + for _, count := range refCounts { + rootRefCount += count + } + util.PushSetDefRefCount(rootID, blockID, refCount, rootRefCount) } func upsertAvBlockRel(node *ast.Node) { diff --git a/kernel/util/websocket.go b/kernel/util/websocket.go index ed4273815..8ca88f3e7 100644 --- a/kernel/util/websocket.go +++ b/kernel/util/websocket.go @@ -262,8 +262,8 @@ func PushSetRefDynamicText(rootID, blockID, defBlockID, refText string) { BroadcastByType("main", "setRefDynamicText", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "defBlockID": defBlockID, "refText": refText}) } -func PushSetDefRefCount(rootID, blockID string, refCount int) { - BroadcastByType("main", "setDefRefCount", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "refCount": refCount}) +func PushSetDefRefCount(rootID, blockID string, refCount, rootRefCount int) { + BroadcastByType("main", "setDefRefCount", 0, "", map[string]interface{}{"rootID": rootID, "blockID": blockID, "refCount": refCount, "rootRefCount": rootRefCount}) } func PushProtyleLoading(rootID, msg string) {