From b8bf786920721413b2236bea98c74fd7500ccd4b Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 4 Feb 2026 18:28:05 +0800 Subject: [PATCH 1/5] Updated flutter --- .fvmrc | 2 +- .vscode/settings.json | 2 +- pubspec.lock | 96 ++++++++++++++++++++++++++++++++----------- pubspec.yaml | 6 ++- 4 files changed, 78 insertions(+), 28 deletions(-) diff --git a/.fvmrc b/.fvmrc index 1497f2f..9b1b0e0 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,5 +1,5 @@ { - "flutter": "3.38.3", + "flutter": "3.38.9", "runPubGetOnSdkChanges": true, "updateVscodeSettings": true, "updateGitIgnore": true diff --git a/.vscode/settings.json b/.vscode/settings.json index d332d93..28739de 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "dart.flutterSdkPath": ".fvm/versions/3.38.3" + "dart.flutterSdkPath": ".fvm/versions/3.38.9" } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 3523d5a..849f662 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -73,6 +73,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + url: "https://pub.dev" + source: hosted + version: "1.0.0" collection: dependency: transitive description: @@ -133,10 +141,10 @@ packages: dependency: "direct main" description: name: dio - sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 + sha256: b9d46faecab38fc8cc286f80bc4d61a3bb5d4ac49e51ed877b4d6706efe57b25 url: "https://pub.dev" source: hosted - version: "5.9.0" + version: "5.9.1" dio_smart_retry: dependency: "direct main" description: @@ -157,10 +165,10 @@ packages: dependency: transitive description: name: equatable - sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b" url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" fake_async: dependency: transitive description: @@ -173,10 +181,10 @@ packages: dependency: transitive description: name: ffi - sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" file: dependency: transitive description: @@ -240,30 +248,38 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" go_router: dependency: "direct main" description: name: go_router - sha256: eff94d2a6fc79fa8b811dde79c7549808c2346037ee107a1121b4a644c745f2a + sha256: "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896" url: "https://pub.dev" source: hosted - version: "17.0.1" + version: "17.1.0" google_fonts: dependency: "direct main" description: name: google_fonts - sha256: ba03d03bcaa2f6cb7bd920e3b5027181db75ab524f8891c8bc3aa603885b8055 + sha256: bf1fe61d4a53420a94cbbd4326e07702d247757926f6955af9667765a8324413 url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "8.0.0" hashlib: dependency: "direct main" description: name: hashlib - sha256: "408af9bfb16289d433822635f0b6890e4440b74fe7acd40014983abeef6d33f0" + sha256: b12381c77d926cc1a55a6c1dbf6fbbc5c97c05b670e89f6ce3bc59fc673f9dd2 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" hashlib_codecs: dependency: transitive description: @@ -272,6 +288,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" + hooks: + dependency: transitive + description: + name: hooks + sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6" + url: "https://pub.dev" + source: hosted + version: "1.0.1" http: dependency: transitive description: @@ -292,10 +316,10 @@ packages: dependency: transitive description: name: image - sha256: "51555e36056541237b15b57afc31a0f53d4f9aefd9bd00873a6dc0090e54e332" + sha256: "492bd52f6c4fbb6ee41f781ff27765ce5f627910e1e0cbecfa3d9add5562604c" url: "https://pub.dev" source: hosted - version: "4.6.0" + version: "4.7.2" internet_connection_checker: dependency: "direct main" description: @@ -316,10 +340,10 @@ packages: dependency: transitive description: name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + sha256: "805fa86df56383000f640384b282ce0cb8431f1a7a2396de92fb66186d8c57df" url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.10.0" leak_tracker: dependency: transitive description: @@ -348,10 +372,10 @@ packages: dependency: transitive description: name: lints - sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0 + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.0" logging: dependency: transitive description: @@ -400,6 +424,14 @@ packages: url: "https://pub.dev" source: hosted version: "7.1.4" + native_toolchain_c: + dependency: transitive + description: + name: native_toolchain_c + sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac" + url: "https://pub.dev" + source: hosted + version: "0.17.4" nested: dependency: transitive description: @@ -416,6 +448,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.0" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "983c7fa1501f6dcc0cb7af4e42072e9993cb28d73604d25ebf4dab08165d997e" + url: "https://pub.dev" + source: hosted + version: "9.2.5" path: dependency: transitive description: @@ -444,10 +484,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4" + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.6.0" path_provider_linux: dependency: transitive description: @@ -512,6 +552,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.5+1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" sky_engine: dependency: transitive description: flutter @@ -585,10 +633,10 @@ packages: dependency: "direct main" description: name: vibration - sha256: "1fd51cb0f91c6d512734ca0e282dd87fbc7f389b6da5f03c77709ba2cf8fa901" + sha256: bfb274be6996651d36bf3e3a947d2122767dae255cfb9ce6ce8ee4b38fb56bad url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" vibration_platform_interface: dependency: transitive description: @@ -654,5 +702,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.9.2 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.10.8 <4.0.0" + flutter: ">=3.38.4" diff --git a/pubspec.yaml b/pubspec.yaml index 3123689..2a732ce 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,13 +5,13 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ^3.9.2 + sdk: ^3.10.8 dependencies: flutter: sdk: flutter - google_fonts: ^6.3.2 + google_fonts: ^8.0.0 go_router: ^17.0.0 gap: ^3.0.1 internet_connection_checker: ^3.0.1 @@ -46,3 +46,5 @@ flutter: - assets/logo.webp - assets/pat-alcala.webp - assets/esign.webp + - assets/esign-mobile.webp + - assets/esign-check.webp From b2715d7d720f2d2c88f980d58fa264b75e93c6b0 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 4 Feb 2026 18:28:16 +0800 Subject: [PATCH 2/5] New logo --- assets/esign-mobile.webp | Bin 0 -> 12174 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/esign-mobile.webp diff --git a/assets/esign-mobile.webp b/assets/esign-mobile.webp new file mode 100644 index 0000000000000000000000000000000000000000..a87db6a2b4074cf26e0fd60ee7703dc5906b37cc GIT binary patch literal 12174 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 literal 0 HcmV?d00001 From b1024daa5962a52e8e2236fcca2cf3d4115ed5f6 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 4 Feb 2026 18:28:26 +0800 Subject: [PATCH 3/5] Added check image --- assets/esign-check.webp | Bin 0 -> 6926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/esign-check.webp diff --git a/assets/esign-check.webp b/assets/esign-check.webp new file mode 100644 index 0000000000000000000000000000000000000000..fa0eb6f6a53cce50801912e375e3b102ccb8e94b GIT binary patch literal 6926 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 literal 0 HcmV?d00001 From f4ab256fa09eae5177c63140604206bcd1bb81ab Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 4 Feb 2026 18:28:35 +0800 Subject: [PATCH 4/5] Updated pages --- lib/pages/index_page.dart | 2 +- lib/pages/login_page.dart | 17 ++- lib/pages/validate_detail_page.dart | 229 ++++++++++++++++++---------- lib/pages/validate_page.dart | 23 +-- 4 files changed, 177 insertions(+), 94 deletions(-) diff --git a/lib/pages/index_page.dart b/lib/pages/index_page.dart index a3e9845..21121e9 100644 --- a/lib/pages/index_page.dart +++ b/lib/pages/index_page.dart @@ -44,7 +44,7 @@ class IndexPage extends StatelessWidget { child: Column( children: [ const Gap(88), - const ImageWidget(imagePath: 'assets/logo.webp', size: 160, measureByHeight: false), + const ImageWidget(imagePath: 'assets/esign-mobile.webp', size: 160, measureByHeight: false), const Gap(20), const TextWidget( text: "OCBO e-Sign", diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 0f58031..5adcbd7 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -120,8 +120,8 @@ class _LoginPageState extends State { child: Column( children: [ const Gap(88), - const ImageWidget(imagePath: 'assets/logo.webp', size: 100, measureByHeight: true), - const Gap(58), + const ImageWidget(imagePath: 'assets/esign-mobile.webp', size: 148, measureByHeight: true), + const Gap(32), LoginBoxWidget( title: 'Login', content: Column( @@ -135,6 +135,7 @@ class _LoginPageState extends State { const Gap(8), InputWidget(controller: _passwordController, password: true), const Gap(24), + // ValueListenableBuilder( // valueListenable: passwordNotifier, // builder: (context, password, child) { @@ -145,6 +146,18 @@ class _LoginPageState extends State { // ); // }, // ), + ValueListenableBuilder( + valueListenable: passwordNotifier, + builder: (context, password, child) { + return ButtonWidget( + text: _passwordController.text.isNotEmpty + ? "Stop typing, login not ready" + : 'Not yet functional', + onPressed: _ignoreButton, + disabled: true, + ); + }, + ), ], ), ), diff --git a/lib/pages/validate_detail_page.dart b/lib/pages/validate_detail_page.dart index ddd2cf8..7bfafce 100644 --- a/lib/pages/validate_detail_page.dart +++ b/lib/pages/validate_detail_page.dart @@ -19,21 +19,27 @@ class ValidateDetailPage extends StatefulWidget { class _ValidateDetailPageState extends State { final _searchController = TextEditingController(); - late int _total = 0; final NumberFormat formatter = NumberFormat('#,###.##'); + final dateFormatter = DateFormat('yyyy-MM-dd'); + // final Color greenColor = const Color(0xFF4CCE51); + late int _total = 0; + late List _applicationList = []; + late List _dateList = []; void _getTotalSigned() async { final name = await blocGetQr(context); final responseCount = await getApi('get-transactions-count', name, null); final total = responseCount['result']; + final response = await getApi('get-transactions', name, null); + final applicationNoList = response['result']; + final dateList = response['result2']; + setState(() { _total = double.parse(total).toInt(); + _applicationList = applicationNoList; + _dateList = dateList; }); - - // final response = await getApi('get-transactions', name, null); - // final applicationNoList = response['result']; - // final dateList = response['result2']; } @override @@ -64,19 +70,10 @@ class _ValidateDetailPageState extends State { ), ), child: SizedBox( - width: MediaQuery.of(context).size.width - 104, + width: MediaQuery.of(context).size.width - 112, child: Column( children: [ const Gap(88), - ClipRRect( - borderRadius: BorderRadius.circular(36), - child: InputWidget( - controller: _searchController, - password: false, - placeholder: 'Search Application Number', - ), - ), - const Gap(24), BoxWidget( circular: 16, content: Row( @@ -85,81 +82,153 @@ class _ValidateDetailPageState extends State { Column( children: [ TextWidget(text: formatter.format(_total), size: 50, bold: true), - TextWidget(text: 'Total Signed Applications', size: 16), + const TextWidget(text: 'Total Signed Applications', size: 16), ], ), ], ), ), const Gap(16), - (Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - BoxWidget( - alignment: CrossAxisAlignment.center, - circular: 16, - content: Row( + ClipRRect( + // borderRadius: BorderRadius.circular(36), + child: InputWidget( + controller: _searchController, + password: false, + placeholder: 'Search Application Number', + ), + ), + const Gap(24), + + // ListView( + // scrollDirection: Axis.horizontal, + // padding: EdgeInsets.symmetric(horizontal: 16), + // children: [ + // // BoxWidget( + // // alignment: CrossAxisAlignment.center, + // // circular: 16, + // // content: Row( + // // children: [ + // // const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), + // // const Gap(16), + // // Column( + // // crossAxisAlignment: CrossAxisAlignment.start, + // // children: [ + // // TextWidget(text: '23-000123', size: 18, bold: true), + // // const Gap(4), + // // TextWidget(text: 'Total Signed Applications', size: 12), + // // ], + // // ), + // // ], + // // ), + // // ), + // ], + // ), + Expanded( + child: ListView.builder( + itemCount: _total, + itemBuilder: (BuildContext context, int index) { + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.start, children: [ - const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), - const Gap(16), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget(text: '23-000123', size: 18, bold: true), - const Gap(4), - TextWidget(text: 'Total Signed Applications', size: 12), - ], - ), - ], - ), - ), - const Gap(8), - BoxWidget( - alignment: CrossAxisAlignment.center, - circular: 16, - content: Row( - children: [ - const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), - const Gap(16), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget(text: '23-000123', size: 18, bold: true), - const Gap(4), - TextWidget(text: 'Total Signed Applications', size: 12), - const Gap(4), - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [TextWidget(text: 'Dates', size: 8)], + BoxWidget( + alignment: CrossAxisAlignment.center, + circular: 16, + content: Row( + children: [ + const ImageWidget(imagePath: 'assets/esign-check.webp', size: 40, measureByHeight: true), + const Gap(16), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget(text: _applicationList[index], size: 18, bold: true), + const Gap(4), + SizedBox( + width: 190, + child: TextWidget(text: '8990 Housing Development Corporation', size: 10), + ), + const Gap(4), + TextWidget(text: _dateList[index], size: 10, opacity: 0.8), + ], ), - ), - ], + ], + ), ), + const Gap(8), ], - ), - ), - const Gap(8), - BoxWidget( - alignment: CrossAxisAlignment.center, - circular: 16, - content: Row( - children: [ - const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), - const Gap(16), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget(text: '23-000123', size: 18, bold: true), - const Gap(4), - TextWidget(text: 'Total Signed Applications', size: 12), - ], - ), - ], - ), - ), - ], - )), + ); + }, + ), + ), + + // Column( + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // BoxWidget( + // alignment: CrossAxisAlignment.center, + // circular: 16, + // content: Row( + // children: [ + // const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), + // const Gap(16), + // Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // TextWidget(text: '23-000123', size: 18, bold: true), + // const Gap(4), + // TextWidget(text: 'Total Signed Applications', size: 12), + // ], + // ), + // ], + // ), + // ), + // // const Gap(8), + // // BoxWidget( + // // alignment: CrossAxisAlignment.center, + // // circular: 16, + // // content: Row( + // // children: [ + // // const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), + // // const Gap(16), + // // Column( + // // crossAxisAlignment: CrossAxisAlignment.start, + // // children: [ + // // TextWidget(text: '23-000123', size: 18, bold: true), + // // const Gap(4), + // // TextWidget(text: 'Total Signed Applications', size: 12), + // // const Gap(4), + // // Expanded( + // // child: Row( + // // mainAxisAlignment: MainAxisAlignment.end, + // // children: [TextWidget(text: 'Dates', size: 8)], + // // ), + // // ), + // // ], + // // ), + // // ], + // // ), + // // ), + // // const Gap(8), + // // BoxWidget( + // // alignment: CrossAxisAlignment.center, + // // circular: 16, + // // content: Row( + // // children: [ + // // const ImageWidget(imagePath: 'assets/esign.webp', size: 48, measureByHeight: true), + // // const Gap(16), + // // Column( + // // crossAxisAlignment: CrossAxisAlignment.start, + // // children: [ + // // TextWidget(text: '23-000123', size: 18, bold: true), + // // const Gap(4), + // // TextWidget(text: 'Total Signed Applications', size: 12), + // // ], + // // ), + // // ], + // // ), + // // ), + // ], + // ), ], ), ), diff --git a/lib/pages/validate_page.dart b/lib/pages/validate_page.dart index a704202..225d635 100644 --- a/lib/pages/validate_page.dart +++ b/lib/pages/validate_page.dart @@ -113,7 +113,7 @@ class _BarcodeScannerScreenState extends State { resizeToAvoidBottomInset: false, body: Container( alignment: Alignment.center, - height: MediaQuery.of(context).size.height, + height: MediaQuery.of(context).size.height * 1.2, decoration: const BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, @@ -187,12 +187,12 @@ class _BarcodeScannerScreenState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - width: MediaQuery.of(context).size.width - 160, - padding: const EdgeInsets.fromLTRB(8, 16, 8, 26), + width: 220, + padding: const EdgeInsets.fromLTRB(0, 16, 0, 32), decoration: BoxDecoration( border: BoxBorder.all(color: redColor), color: redColorShade, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(32), ), child: Column( children: [ @@ -220,12 +220,12 @@ class _BarcodeScannerScreenState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - width: MediaQuery.of(context).size.width - 160, - padding: const EdgeInsets.fromLTRB(8, 16, 8, 26), + width: 220, + padding: const EdgeInsets.fromLTRB(0, 16, 0, 32), decoration: BoxDecoration( border: BoxBorder.all(color: redColor), color: redColorShade, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(32), ), child: Column( children: [ @@ -252,12 +252,13 @@ class _BarcodeScannerScreenState extends State { Column( children: [ Container( - width: MediaQuery.of(context).size.width - 160, - padding: const EdgeInsets.fromLTRB(8, 16, 8, 26), + // width: MediaQuery.of(context).size.width - 160, + width: 220, + padding: const EdgeInsets.fromLTRB(0, 16, 0, 32), decoration: BoxDecoration( border: BoxBorder.all(color: greenColor), color: greenColorShade, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(32), ), child: Column( children: [ @@ -280,7 +281,7 @@ class _BarcodeScannerScreenState extends State { const Gap(24), TextWidget(text: qrResult, bold: true, size: 20, color: greenColor), const Gap(24), - ButtonWidget(text: "Show Details", disabled: false, onPressed: gotoDetails), + ButtonWidget(text: "Check Signed Applications", disabled: false, onPressed: gotoDetails), ], ), ], From 908308b62ea6c01e2f24a58d639851026f00e663 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 4 Feb 2026 18:28:50 +0800 Subject: [PATCH 5/5] Updated widget --- lib/widgets/text_widget.dart | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/widgets/text_widget.dart b/lib/widgets/text_widget.dart index bb3bce9..efc6e3b 100644 --- a/lib/widgets/text_widget.dart +++ b/lib/widgets/text_widget.dart @@ -10,18 +10,27 @@ class TextWidget extends StatelessWidget { final bool? underlined; final Color? color; - const TextWidget( - {super.key, required this.text, this.size, this.opacity, this.bold, this.title, this.underlined, this.color}); + const TextWidget({ + super.key, + required this.text, + this.size, + this.opacity, + this.bold, + this.title, + this.underlined, + this.color, + }); @override Widget build(BuildContext context) { final textStyle = TextStyle( - color: color ?? Color.fromRGBO(255, 255, 255, opacity ?? 1), - fontSize: size ?? 28, - fontWeight: bold == true ? FontWeight.bold : FontWeight.normal, - decoration: underlined == true ? TextDecoration.underline : TextDecoration.none, - decorationColor: color ?? const Color.fromRGBO(255, 255, 255, 1), - decorationThickness: 1); + color: color ?? Color.fromRGBO(255, 255, 255, opacity ?? 1), + fontSize: size ?? 28, + fontWeight: bold == true ? FontWeight.bold : FontWeight.normal, + decoration: underlined == true ? TextDecoration.underline : TextDecoration.none, + decorationColor: color ?? const Color.fromRGBO(255, 255, 255, 1), + decorationThickness: 1, + ); return title == true ? Text(text, style: GoogleFonts.outfit(textStyle: textStyle))