From 91075255f4a153348c0296da2ec1d2c7ddbd9d0f Mon Sep 17 00:00:00 2001 From: yaso Date: Tue, 10 Feb 2026 14:07:05 +0200 Subject: [PATCH] add scrolling to about package --- .../main/res/drawable/mzansi_directory.xml | 3 +- .../mih_single_child_scroll.dart | 5 +- .../package_tools/mih_ attributes.dart | 348 +++++++++--------- .../about_mih/package_tools/mih_info.dart | 1 + .../package_tools/mih_privacy_policy.dart | 11 +- .../package_tools/mih_terms_of_service.dart | 9 +- 6 files changed, 195 insertions(+), 182 deletions(-) diff --git a/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml index 5cd49d32..1ee03963 100644 --- a/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml +++ b/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml @@ -5,7 +5,6 @@ android:height="23.53125dp" android:width="24dp"> + android:fillColor="@color/mih_icon_foreground"/> diff --git a/mih_ui/lib/mih_package_components/mih_single_child_scroll.dart b/mih_ui/lib/mih_package_components/mih_single_child_scroll.dart index f8f6e096..74c846b1 100644 --- a/mih_ui/lib/mih_package_components/mih_single_child_scroll.dart +++ b/mih_ui/lib/mih_package_components/mih_single_child_scroll.dart @@ -2,9 +2,11 @@ import 'package:flutter/material.dart'; class MihSingleChildScroll extends StatefulWidget { final Widget child; + final bool? scrollbarOn; const MihSingleChildScroll({ super.key, required this.child, + this.scrollbarOn, }); @override @@ -18,7 +20,8 @@ class _MihSingleChildScrollState extends State { bottom: false, minimum: EdgeInsets.only(bottom: 5), child: ScrollConfiguration( - behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false), + behavior: ScrollConfiguration.of(context) + .copyWith(scrollbars: widget.scrollbarOn ?? false), child: SingleChildScrollView( child: widget.child, ), diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_ attributes.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_ attributes.dart index abdbff56..d1948fef 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_ attributes.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_ attributes.dart @@ -94,7 +94,6 @@ class _MihAttributesState extends State { Widget build(BuildContext context) { return MihPackageToolBody( borderOn: false, - innerHorizontalPadding: 10, bodyItem: getBody(), ); } @@ -108,179 +107,184 @@ class _MihAttributesState extends State { "As per the terms for free use for these third party providers, the following assets require attribution"; return MihSingleChildScroll( - child: Column( - children: [ - Icon( - MihIcons.mihLogo, - color: MihColors.getSecondaryColor( - MzansiInnovationHub.of(context)!.theme.mode == "Dark"), - size: 165, - ), - const SizedBox( - height: 10, - ), - SelectableText( - message, - style: const TextStyle( - fontSize: 15, - fontWeight: FontWeight.bold, + scrollbarOn: true, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + children: [ + Icon( + MihIcons.mihLogo, + color: MihColors.getSecondaryColor( + MzansiInnovationHub.of(context)!.theme.mode == "Dark"), + size: 165, ), - ), - const SizedBox( - height: 10, - ), - SizedBox( - width: 700, - child: Table( - defaultVerticalAlignment: TableCellVerticalAlignment.middle, - columnWidths: const { - 0: FlexColumnWidth(1), - 1: FlexColumnWidth(1), - 2: FlexColumnWidth(1), - }, - children: [ - const TableRow( - children: [ - TableCell( - verticalAlignment: TableCellVerticalAlignment.middle, - child: Padding( - padding: const EdgeInsets.only(bottom: 15.0), - child: Center( - child: Text( - "Resources", - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - TableCell( - verticalAlignment: TableCellVerticalAlignment.middle, - child: Padding( - padding: const EdgeInsets.only(bottom: 15.0), - child: Center( - child: Text( - "Creator", - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - TableCell( - child: Padding( - padding: const EdgeInsets.only(bottom: 15.0), - child: Center( - child: Text( - "Link", - style: TextStyle( - fontSize: 25, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ), - ], - ), - displayIcon(MihIcons.mihRing, "Tarah Meth", - "https://www.linkedin.com/in/tarah-meth-3b6309254/"), - displayIcon(MihIcons.mihLogo, "Tarah Meth", - "https://www.linkedin.com/in/tarah-meth-3b6309254/"), - displayIcon(MihIcons.mzansiAi, "Ollama", "https://ollama.com/"), - displayIcon(MihIcons.mzansiWallet, "Freepik", - "https://www.flaticon.com/free-icon/wallet-passes-app_3884407?term=wallet&page=1&position=21&origin=search&related_id=3884407"), - displayIcon(MihIcons.patientProfile, "RaftelDesign", - "https://www.flaticon.com/free-icon/patient_2376100?term=medication&page=1&position=6&origin=search&related_id=2376100"), - displayIcon(MihIcons.patientProfile, "Srip", - "https://www.flaticon.com/free-icon/hospital_1233930?term=medical+snake&page=1&position=7&origin=search&related_id=1233930"), - displayIcon(MihIcons.calendar, "Freepik", - "https://www.flaticon.com/free-icon/calendar_2278049?term=calendar&page=1&position=5&origin=search&related_id=2278049"), - displayIcon(MihIcons.calculator, "Freepik", - "https://www.flaticon.com/free-icon/calculator_2374409?term=calculator&page=1&position=20&origin=search&related_id=2374409"), - displayIcon(MihIcons.aboutMih, "Chanut", - "https://www.flaticon.com/free-icon/info_151776?term=about&page=1&position=8&origin=search&related_id=151776"), - displayIcon(MihIcons.personalProfile, "Freepik", - "https://www.flaticon.com/free-icon/user_1077063?term=profile&page=1&position=6&origin=search&related_id=1077063"), - displayIcon(MihIcons.businessProfile, "Gravisio", - "https://www.flaticon.com/free-icon/contractor_11813336?term=company+profile&page=1&position=2&origin=search&related_id=11813336"), - displayIcon(MihIcons.patientManager, "Vector Tank", - "https://www.flaticon.com/free-icon/doctor_10215061?term=doctor&page=1&position=73&origin=search&related_id=10215061"), - displayIcon(MihIcons.profileSetup, "Freepik", - "https://www.flaticon.com/free-icon/add-user_748137?term=profile+add&page=1&position=1&origin=search&related_id=748137"), - displayIcon(MihIcons.businessSetup, "kerismaker", - "https://www.flaticon.com/free-icon/business_13569850?term=company+add&page=1&position=25&origin=search&related_id=13569850"), - displayIcon(MihIcons.calculator, "fawazahmed0", - "https://github.com/fawazahmed0/exchange-api"), - displayIcon(MihIcons.iDontKnow, "Freepik", - "https://www.flaticon.com/free-icon/i-dont-know_5359909?term=i+dont+know&page=1&position=7&origin=search&related_id=5359909"), - ], + const SizedBox( + height: 10, ), - ), - // SizedBox( - // width: 500, - // child: Column( - // children: [ - // const SizedBox( - // width: double.infinity, - // child: Row( - // mainAxisAlignment: MainAxisAlignment.spaceEvenly, - // mainAxisSize: MainAxisSize.max, - // children: [ - // Flexible( - // child: Text( - // "Icon", - // style: TextStyle( - // fontSize: 25, - // fontWeight: FontWeight.bold, - // ), - // ), - // ), - // Flexible( - // child: Text( - // "Creator", - // style: TextStyle( - // fontSize: 25, - // fontWeight: FontWeight.bold, - // ), - // ), - // ), - // Flexible( - // child: Text( - // "Link", - // style: TextStyle( - // fontSize: 25, - // fontWeight: FontWeight.bold, - // ), - // ), - // ), - // ], - // ), - // ), - // const Padding( - // padding: EdgeInsets.symmetric(vertical: 10.0), - // child: Divider(), - // ), - // displayIcon(MihIcons.mihLogo, "Tarah Meth", - // "https://app.mzansi-innovation-hub.co.za/"), - // const SizedBox(height: 10), - // displayIcon(MihIcons.mihLogo, "Test", - // "https://www.flaticon.com/free-icons/mih"), - // const SizedBox(height: 10), - // displayIcon(MihIcons.mihLogo, "Test", - // "https://www.flaticon.com/free-icons/mih"), - // const SizedBox(height: 10), - // displayIcon(MihIcons.mihLogo, "Test", - // "https://www.flaticon.com/free-icons/mih"), - // const SizedBox(height: 10), - // ], - // ), - // ) - ], + SelectableText( + message, + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox( + height: 10, + ), + SizedBox( + width: 700, + child: Table( + defaultVerticalAlignment: TableCellVerticalAlignment.middle, + columnWidths: const { + 0: FlexColumnWidth(1), + 1: FlexColumnWidth(1), + 2: FlexColumnWidth(1), + }, + children: [ + const TableRow( + children: [ + TableCell( + verticalAlignment: TableCellVerticalAlignment.middle, + child: Padding( + padding: const EdgeInsets.only(bottom: 15.0), + child: Center( + child: Text( + "Resources", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + TableCell( + verticalAlignment: TableCellVerticalAlignment.middle, + child: Padding( + padding: const EdgeInsets.only(bottom: 15.0), + child: Center( + child: Text( + "Creator", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + TableCell( + child: Padding( + padding: const EdgeInsets.only(bottom: 15.0), + child: Center( + child: Text( + "Link", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + ], + ), + displayIcon(MihIcons.mihRing, "Tarah Meth", + "https://www.linkedin.com/in/tarah-meth-3b6309254/"), + displayIcon(MihIcons.mihLogo, "Tarah Meth", + "https://www.linkedin.com/in/tarah-meth-3b6309254/"), + displayIcon( + MihIcons.mzansiAi, "Ollama", "https://ollama.com/"), + displayIcon(MihIcons.mzansiWallet, "Freepik", + "https://www.flaticon.com/free-icon/wallet-passes-app_3884407?term=wallet&page=1&position=21&origin=search&related_id=3884407"), + displayIcon(MihIcons.patientProfile, "RaftelDesign", + "https://www.flaticon.com/free-icon/patient_2376100?term=medication&page=1&position=6&origin=search&related_id=2376100"), + displayIcon(MihIcons.patientProfile, "Srip", + "https://www.flaticon.com/free-icon/hospital_1233930?term=medical+snake&page=1&position=7&origin=search&related_id=1233930"), + displayIcon(MihIcons.calendar, "Freepik", + "https://www.flaticon.com/free-icon/calendar_2278049?term=calendar&page=1&position=5&origin=search&related_id=2278049"), + displayIcon(MihIcons.calculator, "Freepik", + "https://www.flaticon.com/free-icon/calculator_2374409?term=calculator&page=1&position=20&origin=search&related_id=2374409"), + displayIcon(MihIcons.aboutMih, "Chanut", + "https://www.flaticon.com/free-icon/info_151776?term=about&page=1&position=8&origin=search&related_id=151776"), + displayIcon(MihIcons.personalProfile, "Freepik", + "https://www.flaticon.com/free-icon/user_1077063?term=profile&page=1&position=6&origin=search&related_id=1077063"), + displayIcon(MihIcons.businessProfile, "Gravisio", + "https://www.flaticon.com/free-icon/contractor_11813336?term=company+profile&page=1&position=2&origin=search&related_id=11813336"), + displayIcon(MihIcons.patientManager, "Vector Tank", + "https://www.flaticon.com/free-icon/doctor_10215061?term=doctor&page=1&position=73&origin=search&related_id=10215061"), + displayIcon(MihIcons.profileSetup, "Freepik", + "https://www.flaticon.com/free-icon/add-user_748137?term=profile+add&page=1&position=1&origin=search&related_id=748137"), + displayIcon(MihIcons.businessSetup, "kerismaker", + "https://www.flaticon.com/free-icon/business_13569850?term=company+add&page=1&position=25&origin=search&related_id=13569850"), + displayIcon(MihIcons.calculator, "fawazahmed0", + "https://github.com/fawazahmed0/exchange-api"), + displayIcon(MihIcons.iDontKnow, "Freepik", + "https://www.flaticon.com/free-icon/i-dont-know_5359909?term=i+dont+know&page=1&position=7&origin=search&related_id=5359909"), + ], + ), + ), + // SizedBox( + // width: 500, + // child: Column( + // children: [ + // const SizedBox( + // width: double.infinity, + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceEvenly, + // mainAxisSize: MainAxisSize.max, + // children: [ + // Flexible( + // child: Text( + // "Icon", + // style: TextStyle( + // fontSize: 25, + // fontWeight: FontWeight.bold, + // ), + // ), + // ), + // Flexible( + // child: Text( + // "Creator", + // style: TextStyle( + // fontSize: 25, + // fontWeight: FontWeight.bold, + // ), + // ), + // ), + // Flexible( + // child: Text( + // "Link", + // style: TextStyle( + // fontSize: 25, + // fontWeight: FontWeight.bold, + // ), + // ), + // ), + // ], + // ), + // ), + // const Padding( + // padding: EdgeInsets.symmetric(vertical: 10.0), + // child: Divider(), + // ), + // displayIcon(MihIcons.mihLogo, "Tarah Meth", + // "https://app.mzansi-innovation-hub.co.za/"), + // const SizedBox(height: 10), + // displayIcon(MihIcons.mihLogo, "Test", + // "https://www.flaticon.com/free-icons/mih"), + // const SizedBox(height: 10), + // displayIcon(MihIcons.mihLogo, "Test", + // "https://www.flaticon.com/free-icons/mih"), + // const SizedBox(height: 10), + // displayIcon(MihIcons.mihLogo, "Test", + // "https://www.flaticon.com/free-icons/mih"), + // const SizedBox(height: 10), + // ], + // ), + // ) + ], + ), ), ); } diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart index 3260449a..f60e3f7b 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_info.dart @@ -777,6 +777,7 @@ class _MihInfoState extends State { return Stack( children: [ MihSingleChildScroll( + scrollbarOn: true, child: Column( children: [ aboutHeadings(), diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart index 0ac7d838..92e4f575 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_privacy_policy.dart @@ -19,7 +19,6 @@ class _MihPrivacyPolicyState extends State { Widget build(BuildContext context) { return MihPackageToolBody( borderOn: false, - innerHorizontalPadding: 10, bodyItem: getBody(context), ); } @@ -55,9 +54,13 @@ class _MihPrivacyPolicyState extends State { children .addAll(PolicyAndTermsText().getPrivacyPolicyText(context, englishOn)); return MihSingleChildScroll( - child: Column( - mainAxisSize: MainAxisSize.max, - children: children, + scrollbarOn: true, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + mainAxisSize: MainAxisSize.max, + children: children, + ), ), ); } diff --git a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart index 4f73ea0e..435b71ea 100644 --- a/mih_ui/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart +++ b/mih_ui/lib/mih_packages/about_mih/package_tools/mih_terms_of_service.dart @@ -19,7 +19,6 @@ class _MIHTermsOfServiceState extends State { Widget build(BuildContext context) { return MihPackageToolBody( borderOn: false, - innerHorizontalPadding: 10, bodyItem: getBody(context), ); } @@ -55,8 +54,12 @@ class _MIHTermsOfServiceState extends State { children .addAll(PolicyAndTermsText().getTermsOfServiceText(context, englishOn)); return MihSingleChildScroll( - child: Column( - children: children, + scrollbarOn: true, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: Column( + children: children, + ), ), ); }