use new icons on tiles

This commit is contained in:
2025-05-14 14:32:43 +02:00
parent c713d3e5e3
commit 6157397819
15 changed files with 140 additions and 172 deletions

View File

@@ -50,72 +50,50 @@ class _MihAppTileState extends State<MihAppTile> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double borderRadius = widget.iconSize * 0.15;
return Container( return Container(
alignment: Alignment.topCenter, // alignment: Alignment.topCenter,
// color: Colors.black, // color: Colors.black,
// width: widget.iconSize, // width: widget.iconSize,
// height: widget.iconSize + widget.iconSize / 3, // height: widget.iconSize + widget.iconSize / 3,
child: Column( child: GestureDetector(
children: [ onTap: widget.onTap,
Flexible( onLongPress: null, // Do this later
flex: 3, child: Column(
child: LayoutBuilder( children: [
builder: (context, constraints) { Flexible(
double iconHeight = constraints.maxWidth; flex: 3,
return AnimatedContainer( child: LayoutBuilder(
height: iconHeight, builder: (context, constraints) {
duration: const Duration(seconds: 2), double iconHeight = constraints.maxWidth;
child: Material( return Container(
color: widget.primaryColor, width: iconHeight,
// shadowColor: height: iconHeight,
// MzanziInnovationHub.of(context)!.theme.secondaryColor(), child:
// elevation: 5, FittedBox(fit: BoxFit.fitHeight, child: widget.appIcon),
borderRadius: BorderRadius.circular(borderRadius), );
child: InkWell( },
borderRadius: BorderRadius.circular(borderRadius),
// ho
onTap: widget.onTap,
onLongPress: () {
displayHint();
},
// hoverDuration: ,
splashColor: MzanziInnovationHub.of(context)!
.theme
.highlightColor(),
highlightColor: MzanziInnovationHub.of(context)!
.theme
.highlightColor(),
child: FittedBox(
fit: BoxFit.fill,
alignment: Alignment.center,
child: widget.appIcon,
),
),
),
);
},
),
),
const SizedBox(height: 10),
Flexible(
flex: 1,
child: FittedBox(
child: Text(
widget.appName,
textAlign: TextAlign.center,
// softWrap: true,
// overflow: TextOverflow.visible,
style: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
fontSize: 20.0,
fontWeight: FontWeight.bold,
),
), ),
), ),
) const SizedBox(height: 10),
], Flexible(
flex: 1,
child: FittedBox(
child: Text(
widget.appName,
textAlign: TextAlign.center,
// softWrap: true,
// overflow: TextOverflow.visible,
style: TextStyle(
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
fontSize: 20.0,
fontWeight: FontWeight.bold,
),
),
),
)
],
),
), ),
); );
} }

View File

@@ -78,7 +78,7 @@ class _MihCircleAvatarState extends State<MihCircleAvatar> {
fit: BoxFit.fill, fit: BoxFit.fill,
child: Icon( child: Icon(
size: widget.width, size: widget.width,
MihIcons.mihCircleFrame, MihIcons.mihRing,
color: widget.frameColor, color: widget.frameColor,
), ),
), ),

View File

@@ -8,16 +8,49 @@ class MihIcons {
// Set to your package name ONLY if this font is part of a separate package you created // Set to your package name ONLY if this font is part of a separate package you created
static const String? _mihFontPkg = null; static const String? _mihFontPkg = null;
// IconData constant for 'mih_circle_frame' using its code 59392 // IconData constants based on your style.css file
// Note: We use lowerCamelCase for Dart variable names // Note: We convert the hex code from CSS (\eXXX) to an integer (0xeXXX)
static const IconData mihCircleFrame =
IconData(59393, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
// IconData constant for 'mih_logo' using its code 59393 static const IconData aboutMih =
IconData(0xe900, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData accessControl =
IconData(0xe901, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData businessProfile =
IconData(0xe902, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData calculator =
IconData(0xe903, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData calendar =
IconData(0xe904, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
// Note: Updated codepoint for mih_logo based on CSS (\e905)
static const IconData mihLogo = static const IconData mihLogo =
IconData(59392, fontFamily: _mihFontFam, fontPackage: _mihFontPkg); IconData(0xe905, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
// IconData constant for 'mzansi_ai_logo' using its code 59394 // Note: Updated codepoint and name for mzansi_ai based on CSS (\e906)
static const IconData mzansiAiLogo = static const IconData mzansiAi =
IconData(59394, fontFamily: _mihFontFam, fontPackage: _mihFontPkg); IconData(0xe906, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
// Note: Added mzansi_wallet based on CSS (\e907)
static const IconData mzansiWallet =
IconData(0xe907, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData patientManager =
IconData(0xe908, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData patientProfile =
IconData(0xe909, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
// Added the new icon 'mih_ring' from your updated CSS (\e90a)
static const IconData mihRing =
IconData(0xe90a, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData profileSetup =
IconData(0xe90c, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
static const IconData businessSetup =
IconData(0xe90b, fontFamily: _mihFontFam, fontPackage: _mihFontPkg);
} }

View File

@@ -1,7 +1,7 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
class AboutMihTile extends StatefulWidget { class AboutMihTile extends StatefulWidget {
final double packageSize; final double packageSize;
@@ -25,19 +25,11 @@ class _AboutMihTileState extends State<AboutMihTile> {
); );
}, },
appName: "About MIH", appName: "About MIH",
appIcon: Container( appIcon: Icon(
alignment: Alignment.center, MihIcons.aboutMih,
padding: const EdgeInsets.all(25), color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
child: FaIcon( // size: widget.packageSize,
FontAwesomeIcons.circleInfo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
size: widget.packageSize,
),
), ),
// Icon(
// Icons.info,
// color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
// ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -27,13 +28,11 @@ class _MihAccessTileState extends State<MihAccessTile> {
arguments: widget.signedInUser, arguments: widget.signedInUser,
); );
}, },
appName: "MIH Access", appName: "Access Controls",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(1), MihIcons.accessControl,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.check_box, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,6 +1,7 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
class MihCalculatorTile extends StatefulWidget { class MihCalculatorTile extends StatefulWidget {
final bool personalSelected; final bool personalSelected;
@@ -27,12 +28,10 @@ class _MihCalculatorTileState extends State<MihCalculatorTile> {
); );
}, },
appName: "Calculator", appName: "Calculator",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(0), MihIcons.calculator,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.calculate, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -28,12 +29,10 @@ class _MzansiCalendarTileState extends State<MzansiCalendarTile> {
); );
}, },
appName: "Calendar", appName: "Calendar",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(0.5), MihIcons.calendar,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.calendar_month, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -29,19 +29,10 @@ class _MzansiAiTileState extends State<MzansiAiTile> {
); );
}, },
appName: "Mzansi AI", appName: "Mzansi AI",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(1), MihIcons.mzansiAi,
alignment: Alignment.center, color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
// color: Colors.black, // size: widget.packageSize,
child: FittedBox(
fit: BoxFit.contain,
child: Icon(
MihIcons.mzansiAiLogo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
// size: widget.packageSize,
),
),
// child: Image(image: logo),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -28,12 +29,10 @@ class _MzansiBusinessProfileTileState extends State<MzansiBusinessProfileTile> {
); );
}, },
appName: "Business Profile", appName: "Business Profile",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(0.5), MihIcons.businessProfile,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.business_center, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -29,12 +30,9 @@ class _MzansiSetupBusinessProfileTileState
); );
}, },
appName: "Setup Business", appName: "Setup Business",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(0.5), MihIcons.profileSetup,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.business_center,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -36,19 +36,10 @@ class _MzansiProfileTileState extends State<MzansiProfileTile> {
); );
}, },
appName: "Mzansi Profile", appName: "Mzansi Profile",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(1), MihIcons.mihLogo,
alignment: Alignment.center, color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
// color: Colors.black, // size: widget.packageSize,
child: FittedBox(
fit: BoxFit.contain,
child: Icon(
MihIcons.mihLogo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
// size: widget.packageSize,
),
),
// child: Image(image: logo),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -35,16 +35,10 @@ class _MzansiSetupProfileTileState extends State<MzansiSetupProfileTile> {
); );
}, },
appName: "Setup Profile", appName: "Setup Profile",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(1), MihIcons.profileSetup,
child: FittedBox( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
fit: BoxFit.contain, // size: widget.packageSize,
child: Icon(
MihIcons.mihLogo,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
// size: widget.packageSize,
),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,8 +1,8 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart'; import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
class MihWalletTile extends StatefulWidget { class MihWalletTile extends StatefulWidget {
@@ -30,15 +30,12 @@ class _MihWalletTileState extends State<MihWalletTile> {
); );
}, },
appName: "Mzansi Wallet", appName: "Mzansi Wallet",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(25), MihIcons.mzansiWallet,
child: FaIcon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
FontAwesomeIcons.wallet, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
size: widget.packageSize,
),
), ),
iconSize: 200, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
); );

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -27,12 +28,10 @@ class _PatManagerTileState extends State<PatManagerTile> {
); );
}, },
appName: "Patient Manager", appName: "Patient Manager",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(1), MihIcons.patientManager,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.medical_services, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(),
),
), ),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),

View File

@@ -1,5 +1,6 @@
import 'package:mzansi_innovation_hub/main.dart'; import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_app_tile.dart';
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart'; import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -28,13 +29,11 @@ class _PatientProfileTileState extends State<PatientProfileTile> {
); );
}, },
appName: "Patient Profile", appName: "Patient Profile",
appIcon: Container( appIcon: Icon(
padding: const EdgeInsets.all(15), MihIcons.patientProfile,
child: Icon( color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
Icons.medical_information_outlined, // size: widget.packageSize,
color: MzanziInnovationHub.of(context)!.theme.primaryColor(), ),
size: widget.packageSize,
)),
iconSize: widget.packageSize, iconSize: widget.packageSize,
primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(), primaryColor: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(), secondaryColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),