Skip to content

Commit

Permalink
fix: skeleton change
Browse files Browse the repository at this point in the history
  • Loading branch information
jvenin committed Apr 29, 2024
1 parent 5a15aac commit 0145aaa
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions lib/widgets/header2/widgets/chunks/skeleton.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:animated_tree_view/animated_tree_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:paraworld_gsf_viewer/classes/gsf/header2/chunks/bone.dart';
import 'package:paraworld_gsf_viewer/classes/gsf/header2/chunks/skeleton.dart';
Expand Down Expand Up @@ -89,9 +90,10 @@ class BoneTreeDisplay extends ConsumerStatefulWidget {
}

class _BoneTreeDisplayState extends ConsumerState<BoneTreeDisplay> {
late final TreeNode<Bone> _computedBoneTree = TreeNode.root(
late TreeNode<Bone> _computedBoneTree = TreeNode.root(
data: widget.bones.first,
);
TreeViewController? _controller;

createBranchFromBone(Bone bone, TreeNode<Bone> node) {
final children = widget.boneTree[bone.guid.value]!.children;
Expand All @@ -112,6 +114,22 @@ class _BoneTreeDisplayState extends ConsumerState<BoneTreeDisplay> {
super.initState();
}

@override
void didUpdateWidget(BoneTreeDisplay oldWidget) {
if (oldWidget.bones != widget.bones) {
_computedBoneTree = TreeNode.root(
data: widget.bones.first,
);
createBranchFromBone(widget.bones.first, _computedBoneTree);
}
if (_controller != null) {
WidgetsBinding.instance.addPostFrameCallback((_) {
_controller!.expandAllChildren(_computedBoneTree);
});
}
super.didUpdateWidget(oldWidget);
}

@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
Expand All @@ -127,7 +145,8 @@ class _BoneTreeDisplayState extends ConsumerState<BoneTreeDisplay> {
child: TreeView.simpleTyped<Bone, TreeNode<Bone>>(
shrinkWrap: true,
onTreeReady: (controller) {
controller.expandAllChildren(_computedBoneTree);
_controller = controller;
_controller!.expandAllChildren(_computedBoneTree);
},
builder: (context, node) {
return ListTile(
Expand Down

0 comments on commit 0145aaa

Please sign in to comment.