Skip to content

Instantly share code, notes, and snippets.

View chimon2000's full-sized avatar

Ryan chimon2000

View GitHub Profile
@chimon2000
chimon2000 / notes.viewlogic.dart
Last active November 3, 2020 05:29
state_example: notes viewlogic
// We create a "logic ref", which will store a reference to NotesViewLogic.
final notesViewLogicRef = LogicRef((scope) => NotesViewLogic(scope));
class NotesViewLogic with Logic {
const NotesViewLogic(this.scope);
@override
final Scope scope;
void addNote() {
@chimon2000
chimon2000 / notes.dart
Last active November 3, 2020 05:30
state_example: binder notes
// We create a "state ref", which will store a reference to NotesState.
final notesRef = StateRef(NotesState.initial());
@chimon2000
chimon2000 / main.dart
Last active November 3, 2020 04:36
state_example: binder root
void main() {
// For widgets to be able to read app state, we need to wrap the entire
// application in a "BinderScope" widget.
runApp(BinderScope(child: App()));
}
@chimon2000
chimon2000 / mobx.page.dart
Last active November 3, 2020 05:48
state_example: mobx page
class MobxPage extends StatefulWidget {
const MobxPage({Key key}) : super(key: key);
@override
_MobxPageState createState() => _MobxPageState();
}
class _MobxPageState extends State<MobxPage> {
var _notesStore = Notes();
TextEditingController _controller;
@chimon2000
chimon2000 / notes.dart
Created November 1, 2020 06:55
state_example: mobx note store
part 'notes.g.dart';
class Notes = NotesBase with _$Notes;
abstract class NotesBase with Store {
@observable
String input = '';
@observable
ObservableList<String> notes = ObservableList();
@chimon2000
chimon2000 / notes.viewmodel.dart
Created November 1, 2020 06:52
state_example: flutter command viewmodel
class NotesViewModel {
NotesState state = NotesState.initial();
Command<String, String> inputChangedCommand;
Command<String, NotesState> updateNotesCommand;
NotesViewModel() {
inputChangedCommand = Command.createSync((x) => x, '');
updateNotesCommand = Command.createSync((input) {
state = state.copyWith(notes: state.notes.concat(input));
@chimon2000
chimon2000 / flutter_command.page.dart
Last active November 3, 2020 05:43
state_examples: flutter command page
class FlutterCommandPage extends StatefulWidget {
const FlutterCommandPage({Key key}) : super(key: key);
@override
_FlutterCommandPageState createState() => _FlutterCommandPageState();
}
class _FlutterCommandPageState extends State<FlutterCommandPage> {
final _notesViewModel = NotesViewModel();
TextEditingController _controller;
@chimon2000
chimon2000 / bloc.page.dart
Last active November 3, 2020 05:39
state_examples bloc page
class BlocPage extends StatefulWidget {
const BlocPage({Key key}) : super(key: key);
@override
_BlocPageState createState() => _BlocPageState();
}
class _BlocPageState extends State<BlocPage> {
TextEditingController _controller;
@chimon2000
chimon2000 / notes.cubit.dart
Created November 1, 2020 06:10
state_examples: notes cubit
class NotesCubit extends Cubit<NotesState> {
NotesCubit(): super(NotesState.initial());
void addNote() {
emit(state.copyWith(notes: state.notes.concat(state.input), input: ''));
}
void updateInput(String input) => emit(state.copyWith(input: input));
}
class RiverpodPage extends StatefulWidget {
const RiverpodPage({Key key}) : super(key: key);
@override
_RiverpodPageState createState() => _RiverpodPageState();
}
class _RiverpodPageState extends State<RiverpodPage> {
TextEditingController _controller;