Skip to content

Commit

Permalink
Merge pull request #1 from elrizwiraswara/bug/file-provider-on-web
Browse files Browse the repository at this point in the history
Error for File image on the web platform
  • Loading branch information
elrizwiraswara authored Oct 19, 2024
2 parents 40c20d4 + 4f3ae6a commit d80d4fa
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 34 deletions.
36 changes: 24 additions & 12 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,47 @@
## 1.0.0
## 1.0.9

- Initial release.
- Fix unsupported File on web

## 1.0.1
## 1.0.8

- Improved pub score

## 1.0.7

- Updated README.md

## 1.0.2
## 1.0.6

- Removed unnecessary codes
- Updated image indexing

## 1.0.3
## 1.0.5

- Updated README.md

## 1.0.4

- Dart format

## 1.0.5
## 1.0.3

- Updated README.md

## 1.0.6
## 1.0.2

- Updated image indexing
- Removed unnecessary codes

## 1.0.7
## 1.0.1

- Updated README.md

## 1.0.8
## 1.0.0

- Initial release.








- Improved pub score
9 changes: 7 additions & 2 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:app_image/app_image.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

Expand Down Expand Up @@ -39,7 +40,7 @@ class _MyHomePageState extends State<MyHomePage> {
];

String assetImage = 'assets/elriz-logo.jpg';
String? fileImage;
dynamic fileImage;
Uint8List? memoryImage;
String svgImageNetwork = 'https://svgur.com/i/18Q4.svg';
String? svgImageFile;
Expand Down Expand Up @@ -233,7 +234,11 @@ class _MyHomePageState extends State<MyHomePage> {
allowedExtensions: ['jpg', 'jpeg', 'png'],
);

fileImage = result?.files.firstOrNull?.path;
// file image is not supported on the web platform
// use bytes instead
fileImage = kIsWeb
? result?.files.firstOrNull?.bytes
: result?.files.firstOrNull?.path;
setState(() {});
},
child: Column(
Expand Down
26 changes: 13 additions & 13 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ packages:
path: ".."
relative: true
source: path
version: "1.0.0"
version: "1.0.9"
args:
dependency: transitive
description:
Expand Down Expand Up @@ -163,18 +163,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.4"
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
Expand Down Expand Up @@ -203,18 +203,18 @@ packages:
dependency: transitive
description:
name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.8.0"
version: "0.11.1"
meta:
dependency: transitive
description:
name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.15.0"
path:
dependency: transitive
description:
Expand Down Expand Up @@ -296,10 +296,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.0"
version: "0.7.2"
typed_data:
dependency: transitive
description:
Expand Down Expand Up @@ -344,10 +344,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev"
source: hosted
version: "14.2.1"
version: "14.2.5"
web:
dependency: transitive
description:
Expand Down
2 changes: 0 additions & 2 deletions lib/src/app_image_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ class AppImageWidget extends StatelessWidget {
// Determine the type of image provider based on the image source.
ImgProvider? provider = getImageProvider(image);

print("$provider $image");

// Display the appropriate image widget based on the provider type.
if (provider == ImgProvider.networkImage) {
return _networkImage();
Expand Down
18 changes: 14 additions & 4 deletions lib/src/img_provider.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:io';
import 'dart:typed_data';

import 'package:flutter/foundation.dart';

/// Enum representing different types of image providers.
enum ImgProvider {
Expand Down Expand Up @@ -37,11 +38,19 @@ ImgProvider? getImageProvider(dynamic image) {
}
}

if (_isFileExists(image)) {
if (!kIsWeb) {
if (_isFileExists(image)) {
if (image.endsWith('.svg')) {
return ImgProvider.svgImageFile;
} else {
return ImgProvider.fileImage;
}
}
} else {
if (image.endsWith('.svg')) {
return ImgProvider.svgImageFile;
return ImgProvider.svgImageNetwork;
} else {
return ImgProvider.fileImage;
return ImgProvider.networkImage;
}
}

Expand All @@ -59,6 +68,7 @@ ImgProvider? getImageProvider(dynamic image) {
///
/// Returns true if the file exists, false otherwise.
bool _isFileExists(String path) {
if (kIsWeb) return false;
final directory = File(path);
return directory.existsSync();
}
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: app_image
description: A complete package for developers looking to implement advanced image display features in their Flutter applications with minimal effort.
version: 1.0.8
version: 1.0.9
repository: https://github.com/elrizwiraswara/app_image

environment:
Expand Down

0 comments on commit d80d4fa

Please # to comment.