This commit is contained in:
otsmr 2026-10-06 22:13:32 +02:00
parent 8cf0eb53c6
commit c3d0858823

View file

@ -94,6 +94,8 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
with SingleTickerProviderStateMixin {
late AvatarMakerController avatarMakerController;
bool _controllerCreatedInternally = false;
late final VoidCallback _handleControllerChanged;
late final VoidCallback _handleTabChanged;
/// Number of displayed categories in the customizer widget.
late int nbrDisplayedCategories;
@ -121,22 +123,23 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
vsync: this,
);
tabController.addListener(() {
setState(() {});
});
_handleTabChanged = () {
if (mounted) setState(() {});
};
tabController.addListener(_handleTabChanged);
// Add listener to the controller
avatarMakerController.addListener(() {
setState(() {});
});
_handleControllerChanged = () {
if (mounted) setState(() {});
};
avatarMakerController.addListener(_handleControllerChanged);
}
@override
void dispose() {
// Remove the listener
avatarMakerController.removeListener(() {
setState(() {});
});
avatarMakerController.removeListener(_handleControllerChanged);
tabController.removeListener(_handleTabChanged);
tabController.dispose();
// Only dispose the controller if we created it
if (_controllerCreatedInternally) {