mirror of
https://github.com/Iconica-Development/flutter_profile.git
synced 2025-05-18 16:53:45 +02:00
fix: avatar image zooming
This commit is contained in:
commit
f56e59b8c4
7 changed files with 64 additions and 42 deletions
30
CHANGELOG.md
30
CHANGELOG.md
|
@ -1,43 +1,51 @@
|
||||||
|
## 1.1.6
|
||||||
|
|
||||||
|
- Fixed avatar image zooming when constrained beyond it's size
|
||||||
|
|
||||||
|
## 1.1.5
|
||||||
|
|
||||||
|
- Added custom background color for avatar
|
||||||
|
|
||||||
## 1.0.5
|
## 1.0.5
|
||||||
|
|
||||||
* Added TextStyle option for all text fields
|
- Added TextStyle option for all text fields
|
||||||
|
|
||||||
## 1.0.4
|
## 1.0.4
|
||||||
|
|
||||||
* Fixed a nullcheck being done on the nullable user in Avatar
|
- Fixed a nullcheck being done on the nullable user in Avatar
|
||||||
|
|
||||||
## 1.0.3
|
## 1.0.3
|
||||||
|
|
||||||
* No longer crashes without profile data
|
- No longer crashes without profile data
|
||||||
|
|
||||||
## 1.0.2
|
## 1.0.2
|
||||||
|
|
||||||
* Added form key and more customizability for web
|
- Added form key and more customizability for web
|
||||||
|
|
||||||
## 1.0.1
|
## 1.0.1
|
||||||
|
|
||||||
* Added a default wrap instead of column
|
- Added a default wrap instead of column
|
||||||
|
|
||||||
## 0.0.11
|
## 0.0.11
|
||||||
|
|
||||||
* Fixed bug where some field wouldn't update when submitted.
|
- Fixed bug where some field wouldn't update when submitted.
|
||||||
|
|
||||||
## 0.0.10
|
## 0.0.10
|
||||||
|
|
||||||
* Fixed bug where keyboard would close on selecting custom input fields.
|
- Fixed bug where keyboard would close on selecting custom input fields.
|
||||||
|
|
||||||
## 0.0.7
|
## 0.0.7
|
||||||
|
|
||||||
* Submit all edited fields on submit of one field
|
- Submit all edited fields on submit of one field
|
||||||
|
|
||||||
## 0.0.3
|
## 0.0.3
|
||||||
|
|
||||||
* Add support for image URL (instead of in-memory image using image parameter from User model)
|
- Add support for image URL (instead of in-memory image using image parameter from User model)
|
||||||
|
|
||||||
## 0.0.2
|
## 0.0.2
|
||||||
|
|
||||||
* Add prioritizedItems option to display items at the top of the page.
|
- Add prioritizedItems option to display items at the top of the page.
|
||||||
|
|
||||||
## 0.0.1
|
## 0.0.1
|
||||||
|
|
||||||
* Initial release.
|
- Initial release.
|
||||||
|
|
|
@ -5,10 +5,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.0"
|
version: "2.11.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -45,10 +45,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: characters
|
name: characters
|
||||||
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
|
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.1"
|
version: "1.3.0"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -61,10 +61,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
|
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.17.0"
|
version: "1.17.2"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -162,14 +162,6 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.2"
|
||||||
js:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: js
|
|
||||||
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.5"
|
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -182,26 +174,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
|
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.13"
|
version: "0.12.16"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
version: "0.5.0"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
|
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.0"
|
version: "1.9.1"
|
||||||
octo_image:
|
octo_image:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -214,10 +206,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
|
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.2"
|
version: "1.8.3"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -323,10 +315,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_span
|
name: source_span
|
||||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.10.0"
|
||||||
sqflite:
|
sqflite:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -387,10 +379,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
|
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.16"
|
version: "0.6.0"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -415,6 +407,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
|
web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web
|
||||||
|
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.4-beta"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -432,5 +432,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0+2"
|
version: "0.2.0+2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.18.0 <3.0.0"
|
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.3.0"
|
||||||
|
|
|
@ -11,10 +11,12 @@ class Avatar extends StatelessWidget {
|
||||||
Key? key,
|
Key? key,
|
||||||
this.user,
|
this.user,
|
||||||
this.size = 100,
|
this.size = 100,
|
||||||
|
this.avatarBackgroundColor,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final User? user;
|
final User? user;
|
||||||
final double size;
|
final double size;
|
||||||
|
final Color? avatarBackgroundColor;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -28,9 +30,10 @@ class Avatar extends StatelessWidget {
|
||||||
height: size,
|
height: size,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
color: !hasImage && hasNames
|
color: avatarBackgroundColor ??
|
||||||
? _generateColorWithIntials(user!.firstName, user!.lastName)
|
(!hasImage && hasNames
|
||||||
: null,
|
? _generateColorWithIntials(user!.firstName, user!.lastName)
|
||||||
|
: null),
|
||||||
image: hasImage
|
image: hasImage
|
||||||
? DecorationImage(
|
? DecorationImage(
|
||||||
image: imageProvider,
|
image: imageProvider,
|
||||||
|
|
|
@ -15,10 +15,12 @@ class AvatarWrapper extends StatelessWidget {
|
||||||
this.size = 100,
|
this.size = 100,
|
||||||
this.textStyle,
|
this.textStyle,
|
||||||
this.customAvatar,
|
this.customAvatar,
|
||||||
|
this.avatarBackgroundColor,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final User user;
|
final User user;
|
||||||
final Widget? customAvatar;
|
final Widget? customAvatar;
|
||||||
|
final Color? avatarBackgroundColor;
|
||||||
final bool showName;
|
final bool showName;
|
||||||
final EdgeInsets padding;
|
final EdgeInsets padding;
|
||||||
final TextStyle? textStyle;
|
final TextStyle? textStyle;
|
||||||
|
@ -30,6 +32,7 @@ class AvatarWrapper extends StatelessWidget {
|
||||||
Avatar(
|
Avatar(
|
||||||
user: user,
|
user: user,
|
||||||
size: size,
|
size: size,
|
||||||
|
avatarBackgroundColor: avatarBackgroundColor,
|
||||||
);
|
);
|
||||||
|
|
||||||
return showName
|
return showName
|
||||||
|
|
|
@ -35,6 +35,7 @@ class ProfilePage extends StatefulWidget {
|
||||||
this.style = const ProfileStyle(),
|
this.style = const ProfileStyle(),
|
||||||
this.customAvatar,
|
this.customAvatar,
|
||||||
this.showAvatar = true,
|
this.showAvatar = true,
|
||||||
|
this.avatarBackgroundColor,
|
||||||
this.showItems = true,
|
this.showItems = true,
|
||||||
this.itemBuilder,
|
this.itemBuilder,
|
||||||
this.itemBuilderOptions,
|
this.itemBuilderOptions,
|
||||||
|
@ -62,6 +63,9 @@ class ProfilePage extends StatefulWidget {
|
||||||
/// Whether to show the users avatar.
|
/// Whether to show the users avatar.
|
||||||
final bool showAvatar;
|
final bool showAvatar;
|
||||||
|
|
||||||
|
///The background color of the avatar when no image is available.
|
||||||
|
final Color? avatarBackgroundColor;
|
||||||
|
|
||||||
/// Whether you want to show the input fields, sometimes you just want to edit the avatar.
|
/// Whether you want to show the input fields, sometimes you just want to edit the avatar.
|
||||||
final bool showItems;
|
final bool showItems;
|
||||||
|
|
||||||
|
@ -118,6 +122,7 @@ class _ProfilePageState extends State<ProfilePage> {
|
||||||
wrapViewOptions: widget.wrapViewOptions,
|
wrapViewOptions: widget.wrapViewOptions,
|
||||||
extraWidgets: widget.extraWidgets,
|
extraWidgets: widget.extraWidgets,
|
||||||
formKey: widget.formKey,
|
formKey: widget.formKey,
|
||||||
|
avatarBackgroundColor: widget.avatarBackgroundColor,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ class ProfileWrapper extends StatefulWidget {
|
||||||
this.style = const ProfileStyle(),
|
this.style = const ProfileStyle(),
|
||||||
this.customAvatar,
|
this.customAvatar,
|
||||||
this.showAvatar = true,
|
this.showAvatar = true,
|
||||||
|
this.avatarBackgroundColor,
|
||||||
this.itemBuilder,
|
this.itemBuilder,
|
||||||
this.itemBuilderOptions,
|
this.itemBuilderOptions,
|
||||||
this.wrapViewOptions,
|
this.wrapViewOptions,
|
||||||
|
@ -38,6 +39,7 @@ class ProfileWrapper extends StatefulWidget {
|
||||||
final ProfileStyle style;
|
final ProfileStyle style;
|
||||||
final Widget? customAvatar;
|
final Widget? customAvatar;
|
||||||
final bool showAvatar;
|
final bool showAvatar;
|
||||||
|
final Color? avatarBackgroundColor;
|
||||||
final String? bottomActionText;
|
final String? bottomActionText;
|
||||||
final ItemBuilder? itemBuilder;
|
final ItemBuilder? itemBuilder;
|
||||||
final WrapViewOptions? wrapViewOptions;
|
final WrapViewOptions? wrapViewOptions;
|
||||||
|
@ -206,6 +208,7 @@ class _ProfileWrapperState extends State<ProfileWrapper> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: AvatarWrapper(
|
child: AvatarWrapper(
|
||||||
|
avatarBackgroundColor: widget.avatarBackgroundColor,
|
||||||
user: widget.user,
|
user: widget.user,
|
||||||
textStyle: widget.style.avatarTextStyle,
|
textStyle: widget.style.avatarTextStyle,
|
||||||
customAvatar: _isUploadingImage
|
customAvatar: _isUploadingImage
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: flutter_profile
|
name: flutter_profile
|
||||||
description: Flutter profile package
|
description: Flutter profile package
|
||||||
version: 1.0.5
|
version: 1.1.6
|
||||||
repository: https://github.com/Iconica-Development/flutter_profile
|
repository: https://github.com/Iconica-Development/flutter_profile
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
|
Loading…
Reference in a new issue