This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ApiService { | |
Future<List> getCharactersDatas() async { | |
final response = await Dio().get( | |
"https://rickandmortyapi.com/api/character", | |
); | |
return response.data["results"]; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependencies: | |
flutter: | |
sdk: flutter | |
flutter_riverpod: ^1.0.4 | |
freezed_annotation: ^2.0.3 | |
sizer: ^2.0.15 | |
dio: ^4.0.6 | |
cached_network_image: ^3.2.1 | |
cupertino_icons: ^1.0.2 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
onPressed: () { | |
ref.read(todoNotifierProvider.notifier).mapEventsToStates( | |
TodoTitleChanged(text: textfieldController.value.text), | |
); | |
ref.read(todoNotifierProvider.notifier).mapEventsToStates( | |
const AddTodo(), | |
); | |
textfieldController.clear(); | |
}, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@override | |
Widget build(BuildContext context, WidgetRef ref) { | |
final todoList = ref.watch(todoNotifierProvider.select((state) => state.todoList)); | |
final reversedTodoList = List<TodoModel>.from(todoList.reversed); | |
. | |
. | |
. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:flutter_riverpod/flutter_riverpod.dart'; | |
import 'package:todo_list_riverpod/domain/todo_model.dart'; | |
import 'package:todo_list_riverpod/presentation/pages/home_page/constants/texts.dart'; | |
import 'package:todo_list_riverpod/presentation/pages/home_page/widgets/todos_action_part.dart'; | |
import 'package:todo_list_riverpod/presentation/pages/home_page/widgets/todos_part.dart'; | |
import 'package:todo_list_riverpod/providers/todo_provider.dart'; | |
class HomePage extends ConsumerWidget { | |
const HomePage({Key? key}) : super(key: key); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(), | |
), | |
); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
}, | |
); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; |