import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:sidebarx/sidebarx.dart'; /// Creates [SidebarXController] that will be disposed automatically. /// /// See also: /// - [SidebarXController] SidebarXController useSidebarXController({ required int selectedIndex, bool? extended, List? keys, }) { return use( _SidebarXControllerHook( selectedIndex: selectedIndex, extended: extended, keys: keys, ), ); } class _SidebarXControllerHook extends Hook { const _SidebarXControllerHook({ required this.selectedIndex, this.extended, List? keys, }) : super(keys: keys); final int selectedIndex; final bool? extended; @override HookState> createState() => _SidebarXControllerHookState(); } class _SidebarXControllerHookState extends HookState { late final SidebarXController controller; @override void initHook() { super.initHook(); controller = SidebarXController( selectedIndex: hook.selectedIndex, extended: hook.extended, ); } @override SidebarXController build(BuildContext context) => controller; @override void dispose() => controller.dispose(); @override String get debugLabel => 'useSidebarXController'; }