Skip to content

Instantly share code, notes, and snippets.

View codestronaut's full-sized avatar
🙌
Be Grateful

Aditya Rohman codestronaut

🙌
Be Grateful
View GitHub Profile
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import '../models/language.dart';
part 'language_event.dart';
part 'language_state.dart';
class LanguageBloc extends Bloc<LanguageEvent, LanguageState> {
LanguageBloc() : super(const LanguageState()) {
part of 'language_bloc.dart';
abstract class LanguageEvent extends Equatable {
const LanguageEvent();
@override
List<Object> get props => [];
}
class ChangeLanguage extends LanguageEvent {
part of 'language_bloc.dart';
class LanguageState extends Equatable {
const LanguageState({
Language? selectedLanguage,
}) : selectedLanguage = selectedLanguage ?? Language.english;
final Language selectedLanguage;
@override
import 'dart:ui';
import '../../../../gen/assets.gen.dart';
enum Language {
english(
Locale('en', 'US'),
Assets.english,
'English',
),
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import '../../../gen/assets.gen.dart';
import '../../components/components.dart';
class OnboardingScreen extends StatelessWidget {
const OnboardingScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
class SomeController {
Future login(String email, String password) async {
final _result = await _repository.login(email, password);
_result.fold(
(l) {
/// Handle left
/// For example: show dialog or alert
},
(r) {
/// Handle right
/// Create variety of exceptions
/// Enum to help create conditions
enum LoginFailure { invalidCredentials, error }
/// Repository
/// This class can be consumed by controller, provider, or other state management later
class SomeRepository {
final http.Client _client;
Future<Either<LoginFailure, bool>> login(String email, String password) async {
class RequestException implements Exception {}
class ServerException implements Exception {}