Skip to content

Commit

Permalink
(+) Register
Browse files Browse the repository at this point in the history
(+) Login
(+) Splash Screen
  • Loading branch information
rizalord committed Sep 22, 2020
1 parent bf1baa7 commit a7fdf42
Show file tree
Hide file tree
Showing 19 changed files with 1,011 additions and 140 deletions.
Binary file modified assets/images/login_screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/images/splash_screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 12 additions & 3 deletions lib/app/app_module.dart
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:unord/screens/LoginScreen.dart';
import 'package:unord/screens/SplashScreen.dart';
import 'package:unord/blocs/auth_bloc.dart';
import 'package:unord/blocs/user_bloc.dart';
import 'package:unord/screens/auth/login_screen.dart';
import 'package:unord/screens/auth/register_screen.dart';
import 'package:unord/screens/auth/splash_screen.dart';
import 'package:unord/screens/tab/main_tab.dart';

import 'app_widget.dart';

class AppModule extends MainModule {

@override
List<Bind> get binds => [];
List<Bind> get binds => [
Bind((_) => AuthBloc()),
Bind((_) => UserBloc()),
];

@override
List<ModularRouter> get routers => [
ModularRouter('/', child: (_, __) => SplashScreen()),
ModularRouter('/login', child: (_, __) => LoginScreen()),
ModularRouter('/register', child: (_, __) => RegisterScreen()),
ModularRouter('/general', child: (_, __) => MainTab()),
];

@override
Expand Down
25 changes: 17 additions & 8 deletions lib/app/app_widget.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,27 @@
// app_widget.dart
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:unord/blocs/auth_bloc.dart';
import 'package:unord/blocs/user_bloc.dart';
import 'package:unord/theme/styles.dart';

class AppWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: "/",
navigatorKey: Modular.navigatorKey,
onGenerateRoute: Modular.generateRoute,
themeMode: ThemeMode.light,
theme: CustomTheme.lightTheme,
darkTheme: CustomTheme.darkTheme,
return MultiBlocProvider(
providers: [
BlocProvider<AuthBloc>(create: (context) => Modular.get<AuthBloc>()),
BlocProvider<UserBloc>(create: (context) => Modular.get<UserBloc>()),
],
child: MaterialApp(
initialRoute: "/",
navigatorKey: Modular.navigatorKey,
onGenerateRoute: Modular.generateRoute,
themeMode: ThemeMode.light,
theme: CustomTheme.lightTheme,
darkTheme: CustomTheme.darkTheme,
),
);
}
}
}
14 changes: 14 additions & 0 deletions lib/blocs/auth_bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hive/hive.dart';
import 'package:unord/data/constants.dart';

class AuthBloc extends Bloc<String, String> {
@override
String get initialState =>
Hive.box(boxName).get('access_token', defaultValue: null);

@override
Stream<String> mapEventToState(String event) async* {
yield event;
}
}
14 changes: 14 additions & 0 deletions lib/blocs/user_bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hive/hive.dart';
import 'package:unord/data/constants.dart';

class UserBloc extends Bloc<Map, Map> {
@override
Map get initialState =>
Hive.box(boxName).get('user_data', defaultValue: null);

@override
Stream<Map> mapEventToState(Map event) async* {
yield event;
}
}
15 changes: 15 additions & 0 deletions lib/data/constants.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
mixin URLs {
static const String host = 'http://192.168.43.233:1337/';
}

mixin AppLimit {
static const int REQUEST_TIME_OUT = 30000;
static const int ALBUM_PAGE_SIZE = 18;
static const int POST_PAGE_SIZE = 100;
}

const String sentryDSN = '';
const String appVersion = '0.0.1';
const String environment = 'Production';

const boxName = 'unord';
10 changes: 10 additions & 0 deletions lib/helpers/database_helper.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import 'package:hive/hive.dart';
import 'package:unord/data/constants.dart';

abstract class DatabaseHelper {
DatabaseHelper() {
box = Hive.box(boxName);
}

Box box;
}
54 changes: 54 additions & 0 deletions lib/helpers/network_helper.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import 'package:dio/dio.dart';
import 'package:unord/data/constants.dart';

class NetworkHelper {
NetworkHelper() {
_dio = Dio(BaseOptions(
baseUrl: URLs.host,
connectTimeout: AppLimit.REQUEST_TIME_OUT,
receiveTimeout: AppLimit.REQUEST_TIME_OUT,
sendTimeout: AppLimit.REQUEST_TIME_OUT,
headers: {
// 'Authorization': 'Bearer ' +
// 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjAwNzAwMDA4LCJleHAiOjE2MDMyOTIwMDh9.nOpjJC_uPITttSp8kji_NTnoFvpiJzbIoJ-Rib0UJtQ',
"Content-Type": "multipart/form-data"
},
validateStatus: (status) {
return status < 500;
},
));
}

Dio _dio;

Future<dynamic> get(String url) async {
dynamic response;
try {
response = await _dio.get<dynamic>(url);
} catch (err) {
rethrow;
}
return response;
}

Future<dynamic> post(String url, dynamic data) async {
dynamic response;
try {
response = await _dio.post<dynamic>(url, data: data);
} on DioError catch (err) {
if (err is DioError) {
} else {}
}
return response;
}

Future<dynamic> put(String url, dynamic data) async {
dynamic response;
try {
response = await _dio.put<dynamic>(url, data: data);
} catch (err) {
rethrow;
}
return response;
}
}
12 changes: 11 additions & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart';
import 'package:unord/data/constants.dart';

import 'app/app_module.dart';

void main() => runApp(ModularApp(module: AppModule()));
void main() async {
WidgetsFlutterBinding.ensureInitialized();

Hive..init((await getApplicationDocumentsDirectory()).path);
await Hive.openBox(boxName);

runApp(ModularApp(module: AppModule()));
}
60 changes: 0 additions & 60 deletions lib/screens/LoginScreen.dart

This file was deleted.

Loading

0 comments on commit a7fdf42

Please sign in to comment.