Skip to content

Instantly share code, notes, and snippets.

View magicleon94's full-sized avatar

Antonello Galipò magicleon94

View GitHub Profile
@magicleon94
magicleon94 / regional_report_bloc.dart
Created September 1, 2020 07:57
Regional report bloc
import 'package:corona_italy/common/closable_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_event.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_state.dart';
import 'package:corona_italy/features/infection_report/model/regional/regional_report_request.dart';
import 'package:corona_italy/features/infection_report/model/regional/regional_report_vm.dart';
import 'package:corona_italy/features/infection_report/service/infections_report_service.dart';
class RegionalReportBloc
extends ClosableBloc<RegionalReportBlocEvent, RegionalReportState> {
final InfectionsReportService service;
@magicleon94
magicleon94 / closable_bloc.dart
Created September 1, 2020 08:05
Closable Bloc
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
abstract class ClosableBloc<E, S> extends Bloc<E, S> {
var closed = false;
ClosableBloc(S initialState) : super(initialState);
@override
@mustCallSuper
Future<void> close() {
@magicleon94
magicleon94 / home_route_handler.dart
Created September 1, 2020 09:00
Home route handler
import 'package:corona_italy/app/dependencies/dependency_provider.dart';
import 'package:corona_italy/features/infection_report/bloc/national/national_report_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc.dart';
import 'package:corona_italy/features/infection_report/presentation/screens/home_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:route_handler/route_handler.dart';
class HomeRouteHandler extends RouteHandler {
HomeRouteHandler(RouteSettings settings) : super(settings);
@magicleon94
magicleon94 / home_screen.dart
Created September 1, 2020 09:16
HomeScreen
import 'package:corona_italy/features/infection_report/bloc/national/national_report_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/national/national_report_bloc_event.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_event.dart';
import 'package:corona_italy/features/infection_report/presentation/widgets/home_panel.dart';
import 'package:corona_italy/features/infection_report/presentation/widgets/infections_map.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:sliding_up_panel/sliding_up_panel.dart';
@magicleon94
magicleon94 / home_panel.dart
Created September 1, 2020 09:43
HomePanel
import 'package:corona_italy/features/infection_report/presentation/widgets/national_report_widget.dart';
import 'package:corona_italy/features/infection_report/presentation/widgets/regions_report_list.dart';
import 'package:flutter/material.dart';
class HomePanel extends StatelessWidget {
final ScrollController scrollController;
const HomePanel({Key key, this.scrollController}) : super(key: key);
@override
Widget build(BuildContext context) {
@magicleon94
magicleon94 / regions_report_list.dart
Last active September 1, 2020 09:48
RegionsReportList
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_state.dart';
import 'package:corona_italy/features/infection_report/model/regional/regional_report_vm.dart';
import 'package:corona_italy/features/infection_report/presentation/widgets/report_preview_list_tile.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class RegionsReportList extends StatelessWidget {
final ScrollController scrollController;
@magicleon94
magicleon94 / infections_map.dart
Last active September 1, 2020 10:06
InfectionsMap
import 'dart:ui';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc.dart';
import 'package:corona_italy/features/infection_report/bloc/regional/regional_report_bloc_state.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';
@magicleon94
magicleon94 / auth_bloc.dart
Last active October 1, 2020 10:06
Authentication Bloc: simple structure for having an auth BLoC with different flavors. Firebase flavor implemented for now. Only email/password auth for now.
import 'package:bloc/bloc.dart';
import 'package:my_app/features/auth/model/user.dart';
import 'package:meta/meta.dart';
part 'auth_event.dart';
part 'auth_state.dart';
abstract class AuthBloc extends Bloc<AuthEvent, AuthState> {
AuthBloc([AuthState initialState]) : super(initialState ?? AuthInitial());
}
@magicleon94
magicleon94 / main.dart
Created October 9, 2020 16:05
Flutter Navigator 2.0 + Notification test
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
@magicleon94
magicleon94 / sliding_overflow.dart
Last active December 22, 2020 12:52
Sliding overflow: slides a long widget (like a text)
import 'dart:math';
import 'package:flutter/material.dart';
class SlidingOverflow extends StatefulWidget {
final Widget child;
const SlidingOverflow({Key key, this.child}) : super(key: key);
@override
_SlidingOverflowState createState() => _SlidingOverflowState();