Skip to content

A change notifier base class which helps reducing boilerplate code

License

Notifications You must be signed in to change notification settings

devmuaz/change-notifier-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BaseChangeNotifier

A change notifier base class which helps reducing boilerplate code used in the ChangeNotifier classes

Usage

class AuthProvider extends BaseChangeNotifier<AuthResponse, DioException> {
    final AuthRepository _authRepository;

    AuthProvider(this._authRepository);

    Future<void> login({required LoginRequest request}) async {
        await run(() async {
            final response = await _apiRepository.login(request);

            if (response.isSuccessfull) {
                /// [response.data] is a [AuthResponse] type
                data = response.data;
            } else {
                /// [response.error] is a [DioException] type
                error = response.error;
            }
        }, loadingType: LoadingType.fullscreenLoading);
    }

    /// Ignore overriding it if the [loadingType] is [loadingType.stateLoading]
    @override
    void onShowFullScreenLoadingDialog() {
        showFullScreenLoadingDialog();
    }

    /// Ignore overriding it if the [loadingType] is [loadingType.stateLoading]
    @override
    void onHideFullScreenLoadingDialog() {
        hideFullScreenLoadingDialog();
    }
}

Medium articles by the author

You can always read the articles I write on my devmuaz account which I write pretty great flutter content out there.

Contributions & Support

Issues and pull requests are always welcome 😄

If you find this package useful for you and liked it, give it a like ❤️ and star the repo ⭐️ it would mean a lot!

License

MIT

About

A change notifier base class which helps reducing boilerplate code

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published