Skip to content

Instantly share code, notes, and snippets.

View FlutterWiz's full-sized avatar
🎯
Discipline

FlutterWiz FlutterWiz

🎯
Discipline
View GitHub Profile
part 'chat_failure.freezed.dart';
@freezed
class ChatFailure with _$ChatFailure {
const factory ChatFailure.serverError() = ServerError;
}
part 'auth_failure.freezed.dart';
@freezed
class AuthFailure with _$AuthFailure {
const factory AuthFailure.serverError() = _ServerError;
const factory AuthFailure.tooManyRequests() = _TooManyRequests;
const factory AuthFailure.deviceNotSupported() = _DeviceNotSupported;
const factory AuthFailure.smsTimeout() = _SmsTimeout;
const factory AuthFailure.sessionExpired() = _SessionExpired;
const factory AuthFailure.invalidVerificationCode() = _InvalidVerificationCode;
@MaterialAutoRouter(
replaceInRouteName: 'Page,Route',
routes: <AutoRoute>[
AutoRoute(page: NotificationPage, initial: true),
AutoRoute(page: OrangePage),
AutoRoute(page: PurplePage),
],
)
class $AppRouter {}
return Consumer(
builder: (context, ref, child) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
NotificationButton(
buttonText: "Send Notification!",
buttonBackgroundColor:
MaterialStateProperty.all(Colors.deepOrange),
class NotificationNotifier extends StateNotifier<NotificationState> {...}
@freezed
class NotificationEvent with _$NotificationEvent {
const factory NotificationEvent.sendNormalNotification() =
SendNormalNotification;
const factory NotificationEvent.sendNotificationAfter3Seconds() =
SendNotificationAfter3Seconds;
}
@module
abstract class InjectableModule {
@singleton
AppRouter get appRouter => AppRouter();
}
final getIt = GetIt.instance;
@InjectableInit()
void configureDependencies() => $initGetIt(getIt);
void main() {
//configureDependencies() method is for the Dependenct Injection
configureDependencies();
runApp(const AppWidget());
}
dependencies:
flutter:
sdk: flutter
auto_route: ^5.0.1
flutter_riverpod: ^2.0.0
awesome_notifications: ^0.7.1
get_it: ^7.2.0
injectable: ^1.5.3
freezed_annotation: ^2.1.0
cupertino_icons: ^1.0.2