Skip to content

Instantly share code, notes, and snippets.

View ttlg's full-sized avatar
🤖
ChatGPT

Yota Ishikawa ttlg

🤖
ChatGPT
View GitHub Profile
final _todoListState = StateProvider<List<Todo>?>((ref) => null);
import 'dart:convert';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:todo_riverpod/entity/todo.dart';
final todoRepository =
Provider.autoDispose<TodoRepository>((ref) => TodoRepositoryImpl(ref.read));
abstract class TodoRepository {
class Todo {
final String content;
final bool done;
final DateTime timestamp;
final String id;
//<editor-fold desc="Data Methods">
Todo({
required this.content,
@ttlg
ttlg / InifinityScrollSample.dart
Last active December 25, 2020 06:35
InifinityScrollSample
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
void main() async {
runApp(ProviderScope(child: InifinityScrollSample()));
}
final itemsProvider = StateProvider<List<String>>((ref) => null);
final itemController =
@ttlg
ttlg / todo_providers_test.dart
Last active September 5, 2020 07:14
todo providers test
import 'package:architect_test/entity/todo.dart';
import 'package:architect_test/provider/todo_providers.dart';
import 'package:architect_test/repository/todo_repository.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
class _TodoRepositoryImplDummy implements TodoRepository {
List<Todo> inMemoryTodoList = [];
@ttlg
ttlg / main.dart
Created September 5, 2020 06:37
main.dart
import 'package:architect_test/view/my_simple_todo.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
void main() {
runApp(
ProviderScope(
child: MaterialApp(
home: MySimpleTodo(),
),
@ttlg
ttlg / todo_view.dart
Created September 5, 2020 06:36
todo view useEffect
useEffect(() {
context.read(todosViewController).initState();
return context.read(todosViewController).dispose;
}, []);
@ttlg
ttlg / todo_view.dart
Created September 5, 2020 06:35
todo_view
import 'package:architect_test/entity/todo.dart';
import 'package:architect_test/provider/todo_providers.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
final _currentTodo = ScopedProvider<Todo>(null);
class TodoTile extends HookWidget {
const TodoTile();
@ttlg
ttlg / todo_providers.dart
Created September 5, 2020 06:34
TodosViewController
final todosViewController =
Provider.autoDispose((ref) => TodosViewController(ref.read));
class TodosViewController {
final Reader read;
TodosViewController(this.read);
void initState() async {
read(_todos).state = await read(todoRepository).getTodos();
}
final _todos = StateProvider.autoDispose<List<Todo>>((ref) => null);