TF-3758 Update app grid in left menu on mobile

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-29 20:25:14 +07:00
committed by Dat H. Pham
parent d7c4418674
commit 6b09fb9faf
12 changed files with 230 additions and 120 deletions
@@ -251,6 +251,9 @@ extension AppColor on Color {
static const warningColor = Color(0xFFFFC107);
static const primaryMain = Color(0xFF0A84FF);
static const m3LayerDarkOutline = Color(0xFF938F99);
static const blackAlpha40 = Color.fromRGBO(0, 0, 0, 0.4);
static const blackAlpha20 = Color.fromRGBO(0, 0, 0, 0.2);
static const textPrimary = Color(0xFF424244);
static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)],
@@ -234,6 +234,15 @@ class ThemeUtils {
color: color ??AppColor.primaryMain,
);
static TextStyle textStyleAppShortcut() => const TextStyle(
fontFamily: ConstantsUI.fontApp,
fontWeight: FontWeight.normal,
letterSpacing: 0.0,
fontSize: 12,
height: 22.5 / 12,
color: AppColor.textPrimary,
);
static TextSelectionThemeData get _textSelectionTheme {
return const TextSelectionThemeData(
cursorColor: AppColor.primaryColor,
@@ -37,12 +37,7 @@ mixin ImageLoaderMixin {
},
errorBuilder: (context, error, stackTrace) {
logError('ImageLoaderMixin::buildImage:Exception = $error');
return Container(
width: imageSize ?? 150,
height: imageSize ?? 150,
alignment: Alignment.center,
child: const Icon(Icons.error_outline),
);
return buildNoImage(imageSize ?? 150);
},
);
} else if (isImageSVG(imagePath)) {
@@ -61,6 +56,15 @@ mixin ImageLoaderMixin {
}
}
Widget buildNoImage(double imageSize) {
return Container(
width: imageSize,
height: imageSize,
alignment: Alignment.center,
child: const Icon(Icons.error_outline),
);
}
bool isImageNetworkLink(String imagePath) {
return imagePath.startsWith('http') == true ||
imagePath.startsWith('https') == true;