Skip to content

Instantly share code, notes, and snippets.

View FlutterWiz's full-sized avatar
🎯
Discipline

FlutterWiz FlutterWiz

🎯
Discipline
View GitHub Profile
class AppWidget extends StatelessWidget {
const AppWidget({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return BlocBuilder<LocalizationCubit, LocalizationState>(
builder: (context, state) {
return MaterialApp(
navigatorKey: navigatorKey,
locale: state.appLanguage,
listener: (context, state) {
timerController!.duration = state.durationOfTimer;
if (state.isTimerReset) {
timerController!.reset();
NotificationApi.notifications.cancelAll();
}
if (state.isTimerStopped) {
timerController!.stop();
NotificationApi.notifications.cancelAll();
import 'package:freezed_annotation/freezed_annotation.dart';
part 'todo_model.freezed.dart';
@freezed
class TodoModel with _$TodoModel {
const factory TodoModel({
required String id,
required String title,
required bool isTodoCompleted,
dependencies:
flutter:
sdk: flutter
freezed_annotation: ^2.0.3
flutter_riverpod: ^1.0.4
uuid: ^3.0.6
sizer: ^2.0.15
dev_dependencies:
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:todo_list_riverpod/domain/todo_model.dart';
part 'todo_state.freezed.dart';
@freezed
class TodoState with _$TodoState {
factory TodoState({
required List<TodoModel> todoList,
required TodoModel todo,
import 'package:freezed_annotation/freezed_annotation.dart';
part 'todo_event.freezed.dart';
@freezed
class TodoEvent with _$TodoEvent {
const factory TodoEvent.todoTitleChanged({required String text}) = TodoTitleChanged;
const factory TodoEvent.todoStatusChanged({required String todoId}) = TodoStatusChanged;
const factory TodoEvent.addTodo() = AddTodo;
const factory TodoEvent.removeTodo({required String todoId}) = RemoveTodo;
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:todo_list_riverpod/application/todo/todo_event.dart';
import 'package:todo_list_riverpod/application/todo/todo_state.dart';
import 'package:todo_list_riverpod/domain/todo_model.dart';
import 'package:uuid/uuid.dart';
class TodoNotifier extends StateNotifier<TodoState> {
TodoNotifier() : super(TodoState.empty());
final uuid = const Uuid();
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:todo_list_riverpod/application/todo/todo_notifier.dart';
import 'package:todo_list_riverpod/application/todo/todo_state.dart';
final todoNotifierProvider = StateNotifierProvider<TodoNotifier, TodoState>(
(ref) {
return TodoNotifier();
},
);
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:todo_list_riverpod/presentation/core/app_widget.dart';
void main() {
runApp(
const ProviderScope(
child: AppWidget(),
),
);
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:sizer/sizer.dart';
import 'package:todo_list_riverpod/presentation/pages/home_page/home_page.dart';
class AppWidget extends StatelessWidget {
const AppWidget({Key? key}) : super(key: key);
@override