smooth_dialog 1.0.0
smooth_dialog: ^1.0.0 copied to clipboard
A modern, highly customizable Flutter dialog package with beautiful animations and platform-aware UI. Create stunning alert and loading dialogs with minimal code!
1.0.0 Major Release ๐ #
Breaking Changes #
- Complete API redesign - Replaced builder pattern with clean, modern static methods using named parameters
- Removed old API -
SmoothDialogclass with builder pattern no longer available - Simplified callbacks - Button text and actions are combined in
DialogButtonobjects:DialogButton(text: 'OK', onPressed: (dialog) => dialog.dismiss()) - Manual dismissal required - Buttons no longer auto-dismiss dialogs, giving you full control
New Features #
- โจ Simplified API - Use
SmoothAlertDialog.show()andSmoothLoadingDialog.show()with named parameters - ๐ฏ Clean button pattern -
DialogButtonclass combines text and action in one place - ๐จ Enhanced customization - New
SmoothDialogConfigandSmoothLoadingConfigfor comprehensive styling - ๐ญ Custom widgets - Support for
titleWidgetandcontentWidgetfor full UI control - ๐ผ๏ธ Icon support - Add icons to alert dialogs easily
- ๐ฌ Customizable animations - Control animation duration and curves
- ๐ช Better type safety - Proper typing throughout the codebase
- ๐ฑ Improved responsive design - Better sizing and layout on all screen sizes
Bug Fixes #
- ๐ Fixed critical state management bug where
_isShowingflag was incorrectly reset - ๐ Fixed loading dialog dismiss issues with proper overlay management
- ๐ Improved memory management and lifecycle handling
Improvements #
- โก Better performance with optimized widget rebuilds
- ๐ Comprehensive documentation and examples
- ๐ฏ More intuitive API with better IDE autocomplete support
- ๐งน Cleaner codebase with better organization
- ๐ Dialog controller provides explicit control over dismissal
Migration Guide #
See README.md and MIGRATION_GUIDE.md for detailed migration instructions from v0.0.4 to v1.0.0
Key Change: Button text and actions are now combined:
// Old (v0.0.4)
onPositivePressed: () => doSomething()
// New (v1.0.0)
positiveButton: DialogButton(
text: 'OK',
onPressed: (dialog) {
dialog.dismiss();
doSomething();
},
)
0.0.4 #
- Add loading dialog
- Optimize structure of code
0.0.3 #
- Add license to the project
- Fix the issue can run show dialog on web