Compare commits
1 Commits
feature/cr
...
mitra_ibl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50a4ec2fb9 |
BIN
images/ibl_login.png
Normal file
BIN
images/ibl_login.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1014 KiB |
BIN
images/logo_ibl.png
Normal file
BIN
images/logo_ibl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -262,11 +262,11 @@ class Constant {
|
||||
prt = "https://";
|
||||
}
|
||||
|
||||
baseUrl = "$protocol//devbandungraya.aplikasi.web.id/one-api/one_mitra/";
|
||||
ipAddress = "devbandungraya.aplikasi.web.id";
|
||||
protocol = protocol;
|
||||
// baseUrl = "$protocol//$text/one-api/one_mitra/";
|
||||
// ipAddress = text;
|
||||
// baseUrl = "$protocol//10.9.20.30/one-api/one_mitra/";
|
||||
// ipAddress = "devbandungraya.aplikasi.web.id";
|
||||
// protocol = protocol;
|
||||
baseUrl = "$protocol//$text/one-api/one_mitra/";
|
||||
ipAddress = text;
|
||||
print(baseUrl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ class MyApp extends StatelessWidget {
|
||||
buttonColor: Constant.primaryRed,
|
||||
),
|
||||
cardColor: Colors.white,
|
||||
cardTheme: CardTheme(color: Colors.white),
|
||||
cardTheme: CardThemeData(color: Colors.white),
|
||||
datePickerTheme: DatePickerThemeData(
|
||||
locale: Locale("id", 'ID'),
|
||||
backgroundColor: Colors.white,
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
class AliasesModel {
|
||||
String? userAliasesID;
|
||||
String? userAliasesUserID;
|
||||
String? userAliasesTargetIP;
|
||||
String? userAliasesTargetUserID;
|
||||
String? userAliasesTargetUsername;
|
||||
String? userAliasesTargetUrl;
|
||||
String? userAliasesTargetRegionalID;
|
||||
String? userAliasesTargetRegionalName;
|
||||
|
||||
AliasesModel(
|
||||
{this.userAliasesID,
|
||||
this.userAliasesUserID,
|
||||
this.userAliasesTargetIP,
|
||||
this.userAliasesTargetUserID,
|
||||
this.userAliasesTargetUsername,
|
||||
this.userAliasesTargetUrl,
|
||||
this.userAliasesTargetRegionalID,
|
||||
this.userAliasesTargetRegionalName});
|
||||
|
||||
AliasesModel.fromJson(Map<String, dynamic> json) {
|
||||
userAliasesID = json['userAliasesID'];
|
||||
userAliasesUserID = json['userAliasesUserID'];
|
||||
userAliasesTargetIP = json['userAliasesTargetIP'];
|
||||
userAliasesTargetUserID = json['userAliasesTargetUserID'];
|
||||
userAliasesTargetUsername = json['userAliasesTargetUsername'];
|
||||
userAliasesTargetUrl = json['userAliasesTargetUrl'];
|
||||
userAliasesTargetRegionalID = json['userAliasesTargetRegionalID'];
|
||||
userAliasesTargetRegionalName = json['userAliasesTargetRegionalName'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['userAliasesID'] = userAliasesID;
|
||||
data['userAliasesUserID'] = userAliasesUserID;
|
||||
data['userAliasesTargetIP'] = userAliasesTargetIP;
|
||||
data['userAliasesTargetUserID'] = userAliasesTargetUserID;
|
||||
data['userAliasesTargetUsername'] = userAliasesTargetUsername;
|
||||
data['userAliasesTargetUrl'] = userAliasesTargetUrl;
|
||||
data['userAliasesTargetRegionalID'] = userAliasesTargetRegionalID;
|
||||
data['userAliasesTargetRegionalName'] = userAliasesTargetRegionalName;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'dio_provider.dart';
|
||||
import '../repository/aliases_repository.dart';
|
||||
import '../repository/base_repository.dart';
|
||||
import '../model/aliases_model.dart';
|
||||
|
||||
|
||||
abstract class AliasesState extends Equatable {
|
||||
final DateTime date;
|
||||
const AliasesState(this.date);
|
||||
@override
|
||||
List<Object?> get props => [date];
|
||||
}
|
||||
|
||||
class AliasesStateInit extends AliasesState {
|
||||
AliasesStateInit() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateLoading extends AliasesState {
|
||||
AliasesStateLoading() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateError extends AliasesState {
|
||||
final String? message;
|
||||
AliasesStateError({
|
||||
required this.message,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesStateDone extends AliasesState {
|
||||
final List<AliasesModel> model;
|
||||
AliasesStateDone({
|
||||
required this.model,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class AliasesNotifier extends StateNotifier<AliasesState> {
|
||||
final Ref ref;
|
||||
AliasesNotifier({
|
||||
required this.ref,
|
||||
}) : super(AliasesStateInit());
|
||||
|
||||
void getAliases({required String token}) async {
|
||||
try {
|
||||
state = AliasesStateLoading();
|
||||
final resp = await AliasesRepository(dio: ref.read(dioProvider)).getAliases(token: token);
|
||||
state = AliasesStateDone(model: resp);
|
||||
} catch (e) {
|
||||
if (e is BaseRepositoryException) {
|
||||
state = AliasesStateError(message: e.message ?? "");
|
||||
} else {
|
||||
state = AliasesStateError(message: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final aliasesDataProvider = StateNotifierProvider<AliasesNotifier, AliasesState>((ref) => AliasesNotifier(ref: ref));
|
||||
@@ -1,62 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'dio_provider.dart';
|
||||
import '../repository/aliases_repository.dart';
|
||||
import '../repository/base_repository.dart';
|
||||
|
||||
abstract class ReqCabangState extends Equatable {
|
||||
final DateTime date;
|
||||
const ReqCabangState(this.date);
|
||||
@override
|
||||
List<Object?> get props => [date];
|
||||
}
|
||||
|
||||
class ReqCabangStateInit extends ReqCabangState {
|
||||
ReqCabangStateInit() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateLoading extends ReqCabangState {
|
||||
ReqCabangStateLoading() : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateError extends ReqCabangState {
|
||||
final String? message;
|
||||
ReqCabangStateError({
|
||||
required this.message,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangStateDone extends ReqCabangState {
|
||||
final String model;
|
||||
ReqCabangStateDone({
|
||||
required this.model,
|
||||
}) : super(DateTime.now());
|
||||
}
|
||||
|
||||
class ReqCabangNotifier extends StateNotifier<ReqCabangState> {
|
||||
final Ref ref;
|
||||
ReqCabangNotifier({
|
||||
required this.ref,
|
||||
}) : super(ReqCabangStateInit());
|
||||
|
||||
void requestTokenCabang({
|
||||
required String token,
|
||||
required String userID,
|
||||
required String username,
|
||||
required String targetUrl
|
||||
}) async {
|
||||
try {
|
||||
state = ReqCabangStateLoading();
|
||||
final resp = await AliasesRepository(dio: ref.read(dioProvider)).requestToken(token: token, userID: userID, username: username, targetUrl: targetUrl);
|
||||
state = ReqCabangStateDone(model: resp);
|
||||
} catch (e) {
|
||||
if (e is BaseRepositoryException) {
|
||||
state = ReqCabangStateError(message: e.message ?? "");
|
||||
} else {
|
||||
state = ReqCabangStateError(message: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final reqCabangTokenProvider = StateNotifierProvider<ReqCabangNotifier, ReqCabangState>((ref) => ReqCabangNotifier(ref: ref));
|
||||
@@ -1,49 +0,0 @@
|
||||
|
||||
import '../app/constant.dart';
|
||||
import '../model/aliases_model.dart';
|
||||
import 'base_repository.dart';
|
||||
|
||||
class AliasesRepository extends BaseRepository {
|
||||
AliasesRepository({required super.dio});
|
||||
|
||||
Future<List<AliasesModel>> getAliases({required String token}) async {
|
||||
final param = {"token": token};
|
||||
final service = "${Constant.baseUrl}authchange/getuseraliases";
|
||||
final resp = await post(param: param, service: service);
|
||||
|
||||
var aliases = <AliasesModel>[];
|
||||
|
||||
if (resp['status'] == 'OK') {
|
||||
resp['data'].forEach((v) {
|
||||
aliases.add(AliasesModel.fromJson(v));
|
||||
});
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
return aliases;
|
||||
}
|
||||
|
||||
Future<String> requestToken({
|
||||
required String token,
|
||||
required String userID,
|
||||
required String username,
|
||||
required String targetUrl,
|
||||
}) async {
|
||||
final param = {
|
||||
"token": token,
|
||||
"userID": userID,
|
||||
"username": username,
|
||||
"targetUrl": targetUrl
|
||||
};
|
||||
|
||||
final service = "${Constant.baseUrl}authchange/request_mitra_token";
|
||||
final resp = await post(param: param, service: service);
|
||||
|
||||
if (resp['status'] == "OK") {
|
||||
return resp['data'];
|
||||
} else {
|
||||
return resp['message'];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:html' as html;
|
||||
|
||||
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
|
||||
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
@@ -38,28 +36,14 @@ class LoginBox extends HookConsumerWidget {
|
||||
final regionalLoading = useState(false);
|
||||
final isLoading = useState(false);
|
||||
final errorMsg = useState("");
|
||||
|
||||
getPref() async {
|
||||
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
final Uri currentUrl = Uri.parse(html.window.location.href);
|
||||
final String? token = currentUrl.queryParameters['token'];
|
||||
|
||||
if (token != null) {
|
||||
final jwt = JWT.decode(token);
|
||||
final payload = jwt.payload;
|
||||
AuthModel user = AuthModel.fromJson(payload);
|
||||
user.token = token;
|
||||
ref.read(authProvider.notifier).state = user;
|
||||
final String? getData = prefs.getString(Constant.tokenName);
|
||||
print(getData);
|
||||
if (getData != null) {
|
||||
ref.read(authProvider.notifier).state =
|
||||
AuthModel.fromJson(jsonDecode(getData));
|
||||
Navigator.pushNamed(context, homeRoute);
|
||||
|
||||
} else {
|
||||
final String? getData = prefs.getString(Constant.tokenName);
|
||||
print(getData);
|
||||
if (getData != null) {
|
||||
ref.read(authProvider.notifier).state =
|
||||
AuthModel.fromJson(jsonDecode(getData));
|
||||
Navigator.pushNamed(context, homeRoute);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'login_box.dart';
|
||||
import 'package:mitra_corporate/screen/login/login_box.dart';
|
||||
|
||||
import '../../app/constant.dart';
|
||||
|
||||
class LoginScreen extends StatelessWidget {
|
||||
const LoginScreen({super.key});
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Material(
|
||||
@@ -13,7 +12,7 @@ class LoginScreen extends StatelessWidget {
|
||||
children: [
|
||||
//image
|
||||
Image.asset(
|
||||
"images/pramita_login.png",
|
||||
"images/ibl_login.png",
|
||||
fit: BoxFit.fill,
|
||||
width: Constant.getActualX(context: context, x: 1440),
|
||||
height: Constant.getActualY(context: context, y: 1024),
|
||||
|
||||
@@ -24,6 +24,7 @@ class DialogPendaftaranPasien extends HookConsumerWidget {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 40),
|
||||
child: SimpleDialog(
|
||||
backgroundColor: Color(0xFFFFF8F7),
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(12))),
|
||||
contentPadding: const EdgeInsets.all(40.0),
|
||||
|
||||
@@ -4,10 +4,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:mitra_corporate/model/aliases_model.dart';
|
||||
import 'package:mitra_corporate/provider/aliases_provider.dart';
|
||||
import 'package:mitra_corporate/provider/menu_provider.dart';
|
||||
import 'package:mitra_corporate/provider/pindah_branch_provider.dart';
|
||||
import 'package:mitra_corporate/widgets/custom_text_field.dart';
|
||||
import 'package:loading_animation_widget/loading_animation_widget.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
@@ -17,7 +14,6 @@ import '../app/route.dart';
|
||||
import '../provider/auth_provider.dart';
|
||||
import '../screen/login/change_password_provider.dart';
|
||||
import '../screen/login/logout_provider.dart';
|
||||
import 'dart:html' as html;
|
||||
import 'custom_snackbar_widget.dart';
|
||||
|
||||
class Header extends HookConsumerWidget {
|
||||
@@ -31,8 +27,6 @@ class Header extends HookConsumerWidget {
|
||||
final isExpand = ref.watch(sideBarExpandProvider);
|
||||
final auth = ref.watch(authProvider);
|
||||
final date = useState("");
|
||||
final listAliases = useState<List<AliasesModel>>(List.empty());
|
||||
|
||||
ref.listen(logoutProvider, (prev, next) async {
|
||||
if (next is LogoutStateLoading) {
|
||||
} else if (next is LogoutStateError) {
|
||||
@@ -47,13 +41,6 @@ class Header extends HookConsumerWidget {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
fetchAliases() async {
|
||||
String token = auth?.token ?? "0";
|
||||
|
||||
ref.read(aliasesDataProvider.notifier).getAliases(token: token);
|
||||
}
|
||||
|
||||
useEffect(() {
|
||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
|
||||
DateTime now = DateTime.now();
|
||||
@@ -61,45 +48,9 @@ class Header extends HookConsumerWidget {
|
||||
date.value = DateFormat('EEEE, d MMMM yyyy', "id").format(now);
|
||||
print(DateFormat('EEEE, d MMMM yyyy', "id").format(now));
|
||||
});
|
||||
fetchAliases();
|
||||
});
|
||||
return () {};
|
||||
}, []);
|
||||
|
||||
ref.listen(aliasesDataProvider, (pref, next) {
|
||||
if (next is AliasesStateInit) {
|
||||
|
||||
} else if (next is AliasesStateLoading) {
|
||||
|
||||
} else if (next is AliasesStateError) {
|
||||
SanckbarWidget(context, next.message ?? "", snackbarType.error);
|
||||
} else if (next is AliasesStateDone) {
|
||||
listAliases.value = next.model;
|
||||
}
|
||||
});
|
||||
|
||||
void openNewTab(String url) {
|
||||
html.window.open(url, '_blank');
|
||||
}
|
||||
|
||||
moveBranch(String userID, String username, String targetUrl) {
|
||||
String token = auth?.token ?? "0";
|
||||
ref.read(reqCabangTokenProvider.notifier).requestTokenCabang(token: token, userID: userID, username: username, targetUrl: targetUrl);
|
||||
}
|
||||
|
||||
ref.listen(reqCabangTokenProvider, (prev, next) {
|
||||
if (next is ReqCabangStateInit) {
|
||||
|
||||
} else if (next is ReqCabangStateLoading) {
|
||||
|
||||
} else if (next is ReqCabangStateError) {
|
||||
SanckbarWidget(context, next.message ?? "", snackbarType.error);
|
||||
} else if (next is ReqCabangStateDone) {
|
||||
var url = next.model;
|
||||
openNewTab("http://${url}");
|
||||
}
|
||||
});
|
||||
|
||||
return Container(
|
||||
color: Colors.white,
|
||||
alignment: Alignment.center,
|
||||
@@ -234,27 +185,6 @@ class Header extends HookConsumerWidget {
|
||||
style: Constant.body3_400(context: context),
|
||||
),
|
||||
),
|
||||
...listAliases.value.isEmpty
|
||||
? []
|
||||
: listAliases.value.map((alias) {
|
||||
return MenuItemButton(
|
||||
leadingIcon: Icon(
|
||||
EvaIcons.globe2Outline,
|
||||
color: Constant.primaryRed,
|
||||
),
|
||||
child: Text(
|
||||
alias.userAliasesTargetRegionalName ?? '',
|
||||
style: Constant.body3_400(context: context),
|
||||
),
|
||||
onPressed: () {
|
||||
moveBranch(
|
||||
alias.userAliasesTargetUserID ?? "",
|
||||
alias.userAliasesTargetUsername ?? "",
|
||||
alias.userAliasesTargetIP ?? ""
|
||||
);
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 10, bottom: 10),
|
||||
child: Center(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:html';
|
||||
import 'dart:ui' as ui;
|
||||
import 'dart:ui_web' as ui;
|
||||
|
||||
class IframeView extends StatefulWidget {
|
||||
final String source;
|
||||
|
||||
@@ -37,7 +37,7 @@ class SideMenu extends HookConsumerWidget {
|
||||
left: 24, right: 24, top: 12, bottom: 12),
|
||||
child: Row(
|
||||
children: [
|
||||
Image.asset('images/logo_pramita.png',
|
||||
Image.asset('images/logo_ibl.png',
|
||||
width: Constant.getActualX(
|
||||
context: context, x: 147),
|
||||
height: Constant.getActualY(
|
||||
|
||||
128
pubspec.lock
128
pubspec.lock
@@ -1,14 +1,6 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
adaptive_number:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: adaptive_number
|
||||
sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
age_calculator:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -69,34 +61,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.4.1"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.1.2"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: collection
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: convert
|
||||
sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
version: "1.19.1"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -113,14 +97,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
dart_jsonwebtoken:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: dart_jsonwebtoken
|
||||
sha256: "866787dc17afaef46a9ea7dd33eefe60c6d82084b4a36d70e8e788d091cd04ef"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.14.2"
|
||||
data_table_2:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -133,10 +109,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: date_field
|
||||
sha256: "8643c8e5f2ee55b4b389fc567ee27186c5a63570f545b291d61f02ab6ca7981d"
|
||||
sha256: a906ee049ccf5e3c78facb78159b6541a4bd5b00c7776d1da645ea1025a7e760
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.2.1"
|
||||
version: "5.3.4+1"
|
||||
device_info_plus:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -169,14 +145,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
ed25519_edwards:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ed25519_edwards
|
||||
sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.1"
|
||||
equatable:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -205,10 +173,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.1"
|
||||
version: "1.3.3"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -425,26 +393,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.19.0"
|
||||
version: "0.20.2"
|
||||
jiffy:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: jiffy
|
||||
sha256: "3497caaa36d36a29033e66803c9739ce6bccbc7e241ca46070f76ee9e6f6eb0c"
|
||||
sha256: e6f3b2aaec032f95ae917268edcbf007a5b834b57a602d39eb0ab17995a9c64a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.1"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.1"
|
||||
version: "6.4.4"
|
||||
just_the_tooltip:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -457,26 +417,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.5"
|
||||
version: "11.0.2"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.5"
|
||||
version: "3.0.10"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
version: "3.0.2"
|
||||
linear_step_indicator:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -521,34 +481,34 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.12.16+1"
|
||||
version: "0.12.18"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.11.1"
|
||||
version: "0.13.0"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.15.0"
|
||||
version: "1.17.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path
|
||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
version: "1.9.1"
|
||||
path_provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -669,14 +629,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.10.2+1"
|
||||
pointycastle:
|
||||
quiver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pointycastle
|
||||
sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe"
|
||||
name: quiver
|
||||
sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.9.1"
|
||||
version: "3.2.2"
|
||||
riverpod:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -761,7 +721,7 @@ packages:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.99"
|
||||
version: "0.0.0"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -782,10 +742,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
version: "1.12.1"
|
||||
state_notifier:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -798,10 +758,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -830,10 +790,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
||||
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.2"
|
||||
version: "0.7.9"
|
||||
top_snackbar_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -950,18 +910,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_math
|
||||
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
version: "2.2.0"
|
||||
vm_service:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||
sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.2.5"
|
||||
version: "14.2.4"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1051,5 +1011,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=3.5.0 <4.0.0"
|
||||
dart: ">=3.9.0-0 <4.0.0"
|
||||
flutter: ">=3.24.0"
|
||||
|
||||
24
pubspec.yaml
24
pubspec.yaml
@@ -1,6 +1,6 @@
|
||||
name: mitra_corporate
|
||||
description: "A new Flutter project."
|
||||
publish_to: 'none'
|
||||
publish_to: "none"
|
||||
version: 0.1.0
|
||||
|
||||
environment:
|
||||
@@ -10,7 +10,7 @@ dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_localizations: # Add this line
|
||||
sdk: flutter # Add this line
|
||||
sdk: flutter # Add this line
|
||||
data_table_2: ^2.3.8
|
||||
scroll_navigation: ^1.3.2
|
||||
flutter_riverpod: ^2.5.1
|
||||
@@ -18,7 +18,7 @@ dependencies:
|
||||
hooks_riverpod: ^2.5.2
|
||||
linear_step_indicator: ^1.0.0+3
|
||||
equatable: ^2.0.5
|
||||
intl: ^0.19.0
|
||||
intl: ^0.20.2
|
||||
dio: ^5.1.1
|
||||
shared_preferences: ^2.2.1
|
||||
top_snackbar_flutter: ^3.1.0
|
||||
@@ -33,7 +33,7 @@ dependencies:
|
||||
http: ^0.13.5
|
||||
pdfx: ^2.3.0
|
||||
internet_file: ^1.2.0
|
||||
|
||||
|
||||
webview_flutter_web: ^0.2.2+4
|
||||
webview_flutter: ^4.8.0
|
||||
flutter_native_splash: ^2.4.1
|
||||
@@ -46,20 +46,16 @@ dependencies:
|
||||
# Use with the CupertinoIcons class for iOS style icons.
|
||||
eva_icons_flutter: ^3.1.0
|
||||
url_launcher: ^6.1.11
|
||||
dart_jsonwebtoken: ^2.14.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
flutter_native_splash:
|
||||
flutter_native_splash:
|
||||
color: "#ffffff"
|
||||
image: images/pramita_splash.png
|
||||
|
||||
|
||||
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
assets:
|
||||
@@ -70,12 +66,14 @@ flutter:
|
||||
- images/pramita_login.png
|
||||
- images/logo_pramita.png
|
||||
- images/order_success.png
|
||||
- images/logo_ibl.png
|
||||
- images/ibl_login.png
|
||||
|
||||
fonts:
|
||||
- family: OpenSans
|
||||
fonts:
|
||||
fonts:
|
||||
- asset: fonts/OpenSans-Bold.ttf
|
||||
- asset: fonts/OpenSans-ExtraBold.ttf
|
||||
- asset: fonts/OpenSans-SemiBold.ttf
|
||||
- asset: fonts/OpenSans-Medium.ttf
|
||||
- asset: fonts/OpenSans-Regular.ttf
|
||||
- asset: fonts/OpenSans-SemiBold.ttf
|
||||
- asset: fonts/OpenSans-Medium.ttf
|
||||
- asset: fonts/OpenSans-Regular.ttf
|
||||
|
||||
BIN
web/pramita.png
BIN
web/pramita.png
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 8.9 KiB |
BIN
web/pramita_bkp.png
Normal file
BIN
web/pramita_bkp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
Reference in New Issue
Block a user