Skip to content

Instantly share code, notes, and snippets.

View felangel's full-sized avatar
coding

Felix Angelov felangel

coding
View GitHub Profile
@felangel
felangel / main.dart
Last active December 27, 2022 08:47
Recipe: Bloc Access (Named Routes)
import 'package:flutter/material.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class SimpleBlocDelegate extends BlocDelegate {
@override
void onEvent(Bloc bloc, Object event) {
super.onEvent(bloc, event);
print(event);
}
@felangel
felangel / main.dart
Last active August 23, 2023 23:03
CombinedBloc + combineLatest
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';
import 'package:rxdart/rxdart.dart';
enum CounterEvent { increment }
class CounterBloc extends Bloc<CounterEvent, int> {
@felangel
felangel / main.dart
Created February 14, 2020 17:14
bloc + combineLatest
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:rxdart/rxdart.dart';
enum CounterEvent { increment }
class CounterBloc extends Bloc<CounterEvent, int> {
@override
int get initialState => 0;
@felangel
felangel / game_bloc.dart
Created February 6, 2020 04:49
GameBloc Refactor
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter_cards/models/models.dart';
part 'game_event.dart';
part 'game_state.dart';
@felangel
felangel / main.dart
Created December 13, 2019 00:09
[flutter_bloc] Location Stream Example
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:meta/meta.dart';
import 'package:geolocator/geolocator.dart';
void main() => runApp(MyApp());
@felangel
felangel / main.dart
Created November 14, 2019 02:58
Equatable HashCode Sample
import './point1.dart' as point1;
import './point2.dart' as point2;
void main() {
final p1 = point1.Point();
final p2 = point2.Point();
print(p1 == p2); // false
print(p1.hashCode == p2.hashCode); // false
}
@felangel
felangel / main.dart
Created August 4, 2019 18:51
[flutter_firestore_todos] main
import 'package:flutter/material.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_firestore_todos/blocs/authentication_bloc/bloc.dart';
import 'package:todos_repository/todos_repository.dart';
import 'package:flutter_firestore_todos/blocs/blocs.dart';
import 'package:flutter_firestore_todos/screens/screens.dart';
import 'package:user_repository/user_repository.dart';
void main() {
@felangel
felangel / todos_bloc.dart
Created August 4, 2019 18:50
[flutter_firestore_todos] todos bloc snippet II
Stream<TodosState> _mapTodosUpdateToState(TodosUpdated event) async* {
yield TodosLoaded(event.todos);
}
@felangel
felangel / todos_bloc.dart
Created August 4, 2019 18:50
[flutter_firestore_todos] todos bloc snippet
Stream<TodosState> _mapLoadTodosToState() async* {
_todosSubscription?.cancel();
_todosSubscription = _todosRepository.todos().listen(
(todos) {
dispatch(
TodosUpdated(todos),
);
},
);
}
@felangel
felangel / todos_bloc.dart
Created August 4, 2019 18:49
[flutter_firestore_todos] todos bloc
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
import 'package:flutter_firestore_todos/blocs/todos/todos.dart';
import 'package:todos_repository/todos_repository.dart';
class TodosBloc extends Bloc<TodosEvent, TodosState> {
final TodosRepository _todosRepository;
StreamSubscription _todosSubscription;