Arc Search Menu
presentation/widgets/curved_icon_menu.dart
Overview
Radial 'fan out' menu of quick-create shortcuts that appears when the floating '+' is tapped. Animates with a single AnimationController using easeOutBack, placing items on a 120-radius arc above the nav bar.
User Flow
- AnimationController(.forward) on initState; animation is consumed by each item's Transform.
- Each _ArcMenuItemData has imagePath, optional imagePathDark, label and an onTap callback.
- Tapping an item closes the menu (arcMenuProvider.notifier.state = false) and pushes its route.
- Tapping outside (the BackdropFilter) closes the menu via the same provider.
Cases & Edge Cases
- Animation is one-way: there's no reverse on dismiss, the whole subtree just unmounts.
- Items render even before the controller completes — a fast '+' tap then dismiss looks janky without the BackdropFilter masking it.
Code References
- lib/src/features/shared/home/presentation/widgets/curved_icon_menu.dart:25 // ArcSearchMenu
- lib/src/features/shared/home/presentation/widgets/curved_icon_menu.dart:37 // _radius constant
API Calls
Empty — fill this in later. Open the manifest and add content here.
Notes
ItemSize 56 + radius 120 is balanced for a phone of ~390 logical width — tablets will leave dead space at the edges.