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
Created December 22, 2018 19:54
Sharing Bloc Across Routes
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class SimpleBlocDelegate extends BlocDelegate {
@override
void onTransition(Transition transition) {
@felangel
felangel / main.dart
Created December 26, 2018 05:08
StatefulWidget Issues
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Example'),
),
body: PageA(),
@felangel
felangel / pubspec.yaml
Last active June 4, 2019 05:24
[flutter_infinite_list] pubspec.yaml
name: flutter_infinite_list
description: A new Flutter project.
version: 1.0.0+1
environment:
sdk: ">=2.0.0 <3.0.0"
dependencies:
flutter:
@felangel
felangel / sample_data.json
Created December 27, 2018 07:55
[flutter_infinite_list] jsonplaceholder sample
[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
@felangel
felangel / post.dart
Last active January 7, 2019 00:46
[flutter_infinite_list] Post Model
import 'package:equatable/equatable.dart';
class Post extends Equatable {
final int id;
final String title;
final String body;
Post({this.id, this.title, this.body}) : super([id, title, body]);
@override
@felangel
felangel / post_event.dart
Last active January 7, 2019 00:46
[flutter_infinite_list] post_event
import 'package:equatable/equatable.dart';
abstract class PostEvent extends Equatable {}
class Fetch extends PostEvent {
@override
String toString() => 'Fetch';
}
@felangel
felangel / post_state.dart
Last active January 21, 2019 22:31
[flutter_infinite_list] post state
import 'package:equatable/equatable.dart';
import 'package:flutter_infinite_list/models/models.dart';
abstract class PostState extends Equatable {
PostState([List props = const []]) : super(props);
}
class PostUninitialized extends PostState {
@override
@felangel
felangel / post_bloc.dart
Last active June 4, 2019 05:26
[flutter_infinite_list] empty post bloc
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_infinite_list/bloc/bloc.dart';
import 'package:flutter_infinite_list/models/models.dart';
class PostBloc extends Bloc<PostEvent, PostState> {
final http.Client httpClient;
PostBloc({@required this.httpClient});
@felangel
felangel / post_bloc.dart
Last active June 4, 2019 05:25
[flutter_infinite_list] post bloc initialState
import 'package:bloc/bloc.dart';
import 'package:meta/meta.dart';
import 'package:http/http.dart' as http;
import 'package:flutter_infinite_list/bloc/bloc.dart';
import 'package:flutter_infinite_list/models/models.dart';
class PostBloc extends Bloc<PostEvent, PostState> {
final http.Client httpClient;
PostBloc({@required this.httpClient});
@felangel
felangel / post_bloc.dart
Last active June 4, 2019 05:25
[flutter_infinite_list] post bloc mapEventToState
@override
Stream<PostState> mapEventToState(PostEvent event) async* {
if (event is Fetch && !_hasReachedMax(currentState)) {
try {
if (currentState is PostUninitialized) {
final posts = await _fetchPosts(0, 20);
yield PostLoaded(posts: posts, hasReachedMax: false);
}
if (currentState is PostLoaded) {
final posts = await _fetchPosts(currentState.posts.length, 20);