fix storage upload issue
This commit is contained in:
@@ -63,7 +63,8 @@ Future<void> deleteStorageFromUrls(List<String> urls) async {
|
|||||||
Future<void> deleteStorageFromUrl(String url) async {
|
Future<void> deleteStorageFromUrl(String url) async {
|
||||||
try {
|
try {
|
||||||
StorageReference storageReference =
|
StorageReference storageReference =
|
||||||
await FirebaseStorage.instance.getReferenceFromUrl(url);
|
await FirebaseStorage(storageBucket: Config.instance.bucketName)
|
||||||
|
.getReferenceFromUrl(url);
|
||||||
await storageReference.delete();
|
await storageReference.delete();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log.warning("deleteStorage:$e");
|
log.warning("deleteStorage:$e");
|
||||||
|
|||||||
@@ -253,8 +253,10 @@ class PackageModel extends BaseModel {
|
|||||||
package.fcsID = user.fcsID;
|
package.fcsID = user.fcsID;
|
||||||
}
|
}
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
if (files.length > uploadPhotoLimit)
|
if (files.length > uploadPhotoLimit) {
|
||||||
throw Exception("Exceed number of file upload");
|
throw Exception("Exceed number of file upload");
|
||||||
|
}
|
||||||
|
|
||||||
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
||||||
String path = Path.join(pkg_files_path);
|
String path = Path.join(pkg_files_path);
|
||||||
List<String> urls = await uploadFiles(path, files);
|
List<String> urls = await uploadFiles(path, files);
|
||||||
@@ -262,7 +264,16 @@ class PackageModel extends BaseModel {
|
|||||||
package.photoUrls.add(url);
|
package.photoUrls.add(url);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
return Services.instance.packageService.createReceiving(package);
|
return Services.instance.packageService.createReceiving(package);
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
// delete uploaded photos if create fails
|
||||||
|
deleteStorageFromUrls(package.photoUrls);
|
||||||
|
} catch (e) {}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> updateReceiving(User user, Package package, List<File> files,
|
Future<void> updateReceiving(User user, Package package, List<File> files,
|
||||||
@@ -274,9 +285,9 @@ class PackageModel extends BaseModel {
|
|||||||
for (String url in deletedUrls) {
|
for (String url in deletedUrls) {
|
||||||
package.photoUrls.remove(url);
|
package.photoUrls.remove(url);
|
||||||
}
|
}
|
||||||
await deleteStorageFromUrls(deletedUrls);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> uploadedURL = [];
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
var count = (package.photoUrls?.length ?? 0) +
|
var count = (package.photoUrls?.length ?? 0) +
|
||||||
files.length -
|
files.length -
|
||||||
@@ -284,14 +295,25 @@ class PackageModel extends BaseModel {
|
|||||||
|
|
||||||
if (count > uploadPhotoLimit)
|
if (count > uploadPhotoLimit)
|
||||||
throw Exception("Exceed number of file upload");
|
throw Exception("Exceed number of file upload");
|
||||||
|
|
||||||
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
||||||
String path = Path.join(pkg_files_path);
|
String path = Path.join(pkg_files_path);
|
||||||
List<String> urls = await uploadFiles(path, files);
|
uploadedURL = await uploadFiles(path, files);
|
||||||
urls.forEach((url) {
|
uploadedURL.forEach((url) {
|
||||||
package.photoUrls.add(url);
|
package.photoUrls.add(url);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
await Services.instance.packageService.updateReceiving(package);
|
await Services.instance.packageService.updateReceiving(package);
|
||||||
|
} catch (e) {
|
||||||
|
// delete newly uploaded photos if fails
|
||||||
|
try {
|
||||||
|
deleteStorageFromUrls(uploadedURL);
|
||||||
|
package.photoUrls.removeWhere((i) => uploadedURL.contains(i));
|
||||||
|
} catch (e) {}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
return deleteStorageFromUrls(deletedUrls);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> deleteReceiving(Package package) {
|
Future<void> deleteReceiving(Package package) {
|
||||||
@@ -304,9 +326,9 @@ class PackageModel extends BaseModel {
|
|||||||
for (String url in deletedUrls) {
|
for (String url in deletedUrls) {
|
||||||
package.photoUrls.remove(url);
|
package.photoUrls.remove(url);
|
||||||
}
|
}
|
||||||
await deleteStorageFromUrls(deletedUrls);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> uploadedURL = [];
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
var count = (package.photoUrls?.length ?? 0) +
|
var count = (package.photoUrls?.length ?? 0) +
|
||||||
files.length -
|
files.length -
|
||||||
@@ -316,13 +338,23 @@ class PackageModel extends BaseModel {
|
|||||||
throw Exception("Exceed number of file upload");
|
throw Exception("Exceed number of file upload");
|
||||||
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
|
||||||
String path = Path.join(pkg_files_path);
|
String path = Path.join(pkg_files_path);
|
||||||
List<String> urls = await uploadFiles(path, files);
|
uploadedURL = await uploadFiles(path, files);
|
||||||
urls.forEach((url) {
|
uploadedURL.forEach((url) {
|
||||||
package.photoUrls.add(url);
|
package.photoUrls.add(url);
|
||||||
});
|
});
|
||||||
package.photoUrls.removeWhere((e) => deletedUrls.contains(e));
|
package.photoUrls.removeWhere((e) => deletedUrls.contains(e));
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
await Services.instance.packageService.updateProcessing(package);
|
await Services.instance.packageService.updateProcessing(package);
|
||||||
|
} catch (e) {
|
||||||
|
// delete newly uploaded photos if fails
|
||||||
|
try {
|
||||||
|
deleteStorageFromUrls(uploadedURL);
|
||||||
|
package.photoUrls.removeWhere((i) => uploadedURL.contains(i));
|
||||||
|
} catch (e) {}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
return deleteStorageFromUrls(deletedUrls);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> deleteProcessing(Package package) {
|
Future<void> deleteProcessing(Package package) {
|
||||||
|
|||||||
@@ -224,10 +224,10 @@ class _ReceivingEditorState extends State<ReceivingEditor> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_save() async {
|
_save() async {
|
||||||
package.trackingID = _trackingIDCtl.text;
|
Package _p =
|
||||||
package.remark = _remarkCtl.text;
|
Package(trackingID: _trackingIDCtl.text, remark: _remarkCtl.text);
|
||||||
|
|
||||||
if (package.trackingID == null || package.trackingID == "") {
|
if (_p.trackingID == null || _p.trackingID == "") {
|
||||||
showMsgDialog(context, "Error", "Invalid tracking ID!");
|
showMsgDialog(context, "Error", "Invalid tracking ID!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -239,12 +239,13 @@ class _ReceivingEditorState extends State<ReceivingEditor> {
|
|||||||
try {
|
try {
|
||||||
if (_isNew) {
|
if (_isNew) {
|
||||||
await packageModel.createReceiving(
|
await packageModel.createReceiving(
|
||||||
user, package, _multiImgController.getAddedFile);
|
user, _p, _multiImgController.getAddedFile);
|
||||||
} else {
|
} else {
|
||||||
package.id = widget.package.id;
|
_p.id = widget.package.id;
|
||||||
|
_p.photoUrls = package.photoUrls;
|
||||||
await packageModel.updateReceiving(
|
await packageModel.updateReceiving(
|
||||||
user,
|
user,
|
||||||
package,
|
_p,
|
||||||
_multiImgController.getAddedFile,
|
_multiImgController.getAddedFile,
|
||||||
_multiImgController.getDeletedUrl);
|
_multiImgController.getDeletedUrl);
|
||||||
}
|
}
|
||||||
|
|||||||
195
pubspec.lock
195
pubspec.lock
@@ -1,6 +1,27 @@
|
|||||||
# Generated by pub
|
# Generated by pub
|
||||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
packages:
|
packages:
|
||||||
|
_fe_analyzer_shared:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: _fe_analyzer_shared
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "12.0.0"
|
||||||
|
analyzer:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: analyzer
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.40.6"
|
||||||
|
args:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: args
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.6.0"
|
||||||
async:
|
async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -50,6 +71,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0-nullsafety.1"
|
version: "1.2.0-nullsafety.1"
|
||||||
|
cli_util:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: cli_util
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.0"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -134,6 +162,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.1"
|
version: "1.1.1"
|
||||||
|
coverage:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: coverage
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.14.2"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -196,7 +231,7 @@ packages:
|
|||||||
name: firebase
|
name: firebase
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.3.0"
|
version: "7.3.3"
|
||||||
firebase_auth:
|
firebase_auth:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -336,6 +371,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.9.0"
|
version: "8.9.0"
|
||||||
|
glob:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: glob
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.0"
|
||||||
google_api_availability:
|
google_api_availability:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -350,6 +392,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.2"
|
version: "0.12.2"
|
||||||
|
http_multi_server:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: http_multi_server
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.0"
|
||||||
http_parser:
|
http_parser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -378,13 +427,20 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.16.1"
|
version: "0.16.1"
|
||||||
|
io:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: io
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.3.4"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: js
|
name: js
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.2"
|
version: "0.6.3-nullsafety.2"
|
||||||
logging:
|
logging:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -420,6 +476,27 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.4"
|
version: "0.0.4"
|
||||||
|
node_interop:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: node_interop
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.1"
|
||||||
|
node_io:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: node_io
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.0"
|
||||||
|
node_preamble:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: node_preamble
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.12"
|
||||||
notus:
|
notus:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -434,6 +511,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.0"
|
version: "0.3.0"
|
||||||
|
package_config:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: package_config
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.9.3"
|
||||||
package_info:
|
package_info:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -489,7 +573,7 @@ packages:
|
|||||||
name: pedantic
|
name: pedantic
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.0"
|
version: "1.10.0-nullsafety.2"
|
||||||
permission_handler:
|
permission_handler:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -532,6 +616,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.2"
|
version: "1.0.2"
|
||||||
|
pool:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pool
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.0-nullsafety.2"
|
||||||
process:
|
process:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -553,6 +644,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.3.2+1"
|
version: "4.3.2+1"
|
||||||
|
pub_semver:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pub_semver
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.4.4"
|
||||||
quill_delta:
|
quill_delta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -623,11 +721,53 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.2+7"
|
version: "0.1.2+7"
|
||||||
|
shelf:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.7.9"
|
||||||
|
shelf_packages_handler:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf_packages_handler
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.0"
|
||||||
|
shelf_static:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf_static
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.9+1"
|
||||||
|
shelf_web_socket:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: shelf_web_socket
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.3"
|
||||||
sky_engine:
|
sky_engine:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.99"
|
version: "0.0.99"
|
||||||
|
source_map_stack_trace:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: source_map_stack_trace
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.0-nullsafety.3"
|
||||||
|
source_maps:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: source_maps
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.10.10-nullsafety.2"
|
||||||
source_span:
|
source_span:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -684,6 +824,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0-nullsafety.1"
|
version: "1.2.0-nullsafety.1"
|
||||||
|
test:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: test
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.16.0-nullsafety.5"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -691,6 +838,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.19-nullsafety.2"
|
version: "0.2.19-nullsafety.2"
|
||||||
|
test_core:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: test_core
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.3.12-nullsafety.5"
|
||||||
timeline_list:
|
timeline_list:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -761,6 +915,34 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.0-nullsafety.3"
|
version: "2.1.0-nullsafety.3"
|
||||||
|
vm_service:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vm_service
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "5.5.0"
|
||||||
|
watcher:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: watcher
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.9.7+15"
|
||||||
|
web_socket_channel:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web_socket_channel
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.0"
|
||||||
|
webkit_inspection_protocol:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: webkit_inspection_protocol
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.7.4"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -775,6 +957,13 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.0"
|
version: "0.1.0"
|
||||||
|
yaml:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: yaml
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.2.1"
|
||||||
zefyr:
|
zefyr:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -24,12 +24,8 @@ dependencies:
|
|||||||
image_picker: ^0.6.0+9
|
image_picker: ^0.6.0+9
|
||||||
shared_preferences: ^0.5.7+3
|
shared_preferences: ^0.5.7+3
|
||||||
progress:
|
progress:
|
||||||
git:
|
path:
|
||||||
url: https://git.mokkon.com/tzw/mokkon-flutter.git
|
../flutter/packages/progress
|
||||||
ref: v1.0.0
|
|
||||||
path: packages/progress
|
|
||||||
# path:
|
|
||||||
# ../flutter/packages/progress
|
|
||||||
flutter_datetime_picker: ^1.3.8
|
flutter_datetime_picker: ^1.3.8
|
||||||
dio: ^3.0.9
|
dio: ^3.0.9
|
||||||
package_info: ^0.4.0+6
|
package_info: ^0.4.0+6
|
||||||
|
|||||||
Reference in New Issue
Block a user