TF-2893 Apply the standard app grid icon

This commit is contained in:
dab246
2024-07-23 13:35:02 +07:00
committed by Dat H. Pham
parent 47b006f685
commit 8b7ac1f039
27 changed files with 173 additions and 77 deletions
+1 -1
View File
@@ -2,5 +2,5 @@
import 'package:core/utils/platform_info.dart';
class IconUtils {
static const double defaultIconSize = PlatformInfo.isWeb ? 20.0 : 24.0;
static double defaultIconSize = PlatformInfo.isWeb ? 20.0 : 24.0;
}
@@ -2,7 +2,7 @@ import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart';
typedef OnTapAvatarActionClick = void Function();
typedef OnTapAvatarActionWithPositionClick = void Function(RelativeRect? position);
typedef OnTapAvatarActionWithPositionClick = void Function(RelativeRect position);
class AvatarBuilder {
@@ -58,7 +58,7 @@ class AvatarBuilder {
_onTapAvatarActionClick = onTapAvatarActionClick;
}
void addOnTapAvatarActionWithPositionClick(OnTapAvatarActionWithPositionClick onTapAvatarActionWithPositionClick) {
void addOnTapAvatarActionWithPositionClick(OnTapAvatarActionWithPositionClick? onTapAvatarActionWithPositionClick) {
_onTapAvatarActionWithPositionClick = onTapAvatarActionWithPositionClick;
}
@@ -1,3 +1,4 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/style_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -14,8 +15,8 @@ class SloganBuilder extends StatelessWidget {
final String? text;
final TextStyle? textStyle;
final TextAlign? textAlign;
final String? logoSVG;
final String? logo;
final Uri? publicLogoUri;
final double? sizeLogo;
final OnTapCallback? onTapCallback;
final EdgeInsetsGeometry? paddingText;
@@ -31,8 +32,8 @@ class SloganBuilder extends StatelessWidget {
this.text,
this.textStyle,
this.textAlign,
this.logoSVG,
this.logo,
this.publicLogoUri,
this.sizeLogo,
this.onTapCallback,
this.padding,
@@ -94,9 +95,9 @@ class SloganBuilder extends StatelessWidget {
}
Widget _logoApp() {
if (logoSVG != null) {
if (logo != null && logo!.endsWith('svg')) {
return SvgPicture.asset(
logoSVG!,
logo!,
width: sizeLogo ?? 150,
height: sizeLogo ?? 150);
} else if (logo != null) {
@@ -104,9 +105,22 @@ class SloganBuilder extends StatelessWidget {
image: AssetImage(logo!),
fit: BoxFit.fill,
width: sizeLogo ?? 150,
height: sizeLogo ?? 150);
} else if (publicLogoUri != null) {
return Image.network(
publicLogoUri.toString(),
fit: BoxFit.fill,
width: sizeLogo ?? 150,
height: sizeLogo ?? 150,
alignment: Alignment.center);
errorBuilder: (_, error, stackTrace) {
return Container(
width: sizeLogo ?? 150,
height: sizeLogo ?? 150,
color: AppColor.textFieldHintColor,
);
});
} else {
return const SizedBox.shrink();
}
return const SizedBox.shrink();
}
}
+4 -1
View File
@@ -3,7 +3,10 @@ import 'package:core/utils/web_renderer/canvas_kit.dart';
import 'package:flutter/foundation.dart';
abstract class PlatformInfo {
static const bool isWeb = kIsWeb;
@visibleForTesting
static bool isTestingForWeb = false;
static bool get isWeb => kIsWeb || isTestingForWeb;
static bool get isLinux => !kIsWeb && defaultTargetPlatform == TargetPlatform.linux;
static bool get isWindows => !kIsWeb && defaultTargetPlatform == TargetPlatform.windows;
static bool get isMacOS => !kIsWeb && defaultTargetPlatform == TargetPlatform.macOS;