From d9473e08e3a8d8ab97ce12a1a315cefcd1d62994 Mon Sep 17 00:00:00 2001 From: venbaittech Date: Fri, 4 Apr 2025 15:33:59 +0530 Subject: [PATCH] policy criteria ui --- .run/ts-tat.run.xml | 10 + lib/Screens/policy/policy.dart | 322 +++++++------- lib/Screens/policy/policyCriteria.dart | 554 ++++++++++++++++++++----- lib/widgets/custom_user_form.dart | 23 +- pubspec.lock | 74 ++-- 5 files changed, 680 insertions(+), 303 deletions(-) create mode 100644 .run/ts-tat.run.xml diff --git a/.run/ts-tat.run.xml b/.run/ts-tat.run.xml new file mode 100644 index 0000000..f7210ca --- /dev/null +++ b/.run/ts-tat.run.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/lib/Screens/policy/policy.dart b/lib/Screens/policy/policy.dart index c2f8c40..8a7c873 100644 --- a/lib/Screens/policy/policy.dart +++ b/lib/Screens/policy/policy.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:math'; import 'package:flutter/material.dart'; import 'package:frontend/Screens/policy/policyCriteria.dart'; import 'package:responsive_builder/responsive_builder.dart'; @@ -6,19 +7,20 @@ import 'package:responsive_builder/responsive_builder.dart'; import '../../routes/custom_appBar.dart'; import '../../routes/custom_drawer.dart'; -class Policy extends StatefulWidget{ - - const Policy ({super.key}); +class Policy extends StatefulWidget { + const Policy({super.key}); @override _PolicyState createState() => _PolicyState(); } -class _PolicyState extends State{ - - late String policyType = "domestic"; +class _PolicyState extends State { + late String policyType = "domestic"; int? selectedServiceIndex = 1; - late String selectedService; + late String selectedService = "Train"; + + bool showClass = true; + bool showCost = true; @override Widget build(BuildContext context) { @@ -39,9 +41,11 @@ class _PolicyState extends State{ }); } - Widget buildPolicyLayout(bool isDesktop){ + Widget buildPolicyLayout(bool isDesktop) { return Container( - margin: EdgeInsets.all(20.0), + margin: isDesktop + ? EdgeInsets.all(20.0) + : EdgeInsets.only(left: 20.0, bottom: 20.0, top: 10.0, right: 10.0), height: MediaQuery.of(context).size.height, // color: Colors.grey, child: Column( @@ -52,11 +56,9 @@ class _PolicyState extends State{ child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - Row( children: [ Expanded( - child: Container( // color: Colors.amber, // color: Color(0xFFF7F7FB), @@ -64,130 +66,140 @@ class _PolicyState extends State{ alignment: Alignment.center, child: Text( "Choose Policy Type", - style: TextStyle(fontSize: 20,), - ), - ), - - ), - ], - ), - - SizedBox(height: 10,), - - Row ( - children: [ - Expanded( - - child: GestureDetector( - onTap: (){ setState(() { - policyType = "domestic"; - });}, - child: Container( - padding: EdgeInsets.all(10), - color: policyType == "domestic" ? Colors.blueAccent.shade100 : Color(0xFFEBEBF7), - // color: Colors.blue.shade300, - child: Column( - children: [ - Text( - "Domestic", - style: TextStyle(color: policyType == "domestic" ? Colors.white :Colors.black87, fontSize: 18,fontWeight: FontWeight.bold), - ), - ], + style: TextStyle( + fontSize: 18, ), - ), ), ), - Expanded( - + ], + ), + SizedBox( + height: 10, + ), + Container( + child: Row( + children: [ + Expanded( child: GestureDetector( - onTap: (){ setState(() { - policyType = "international"; - });}, - + onTap: () { + setState(() { + policyType = "domestic"; + }); + }, child: Container( padding: EdgeInsets.all(10), - // color: Color(0xFFEBEBF7), - color: policyType == "international" ? Colors.blueAccent.shade100 : Color(0xFFEBEBF7), - // color: Color(0xFFE3F2FD), - + color: policyType == "domestic" + ? Colors.blueAccent.shade100 + : Color(0xFFEBEBF7), + // color: Colors.blue.shade300, child: Column( children: [ Text( - "International", - style: TextStyle(color: policyType == "international" ? Colors.white :Colors.black87, fontSize: 18, fontWeight: FontWeight.bold), + "Domestic", + style: TextStyle( + color: policyType == "domestic" + ? Colors.white + : Colors.black87, + fontSize: 15, + fontWeight: FontWeight.bold), ), ], ), ), - ) + ), + ), + Expanded( + child: GestureDetector( + onTap: () { + setState(() { + policyType = "international"; + }); + }, + child: Container( + padding: EdgeInsets.all(10), + // color: Color(0xFFEBEBF7), + color: policyType == "international" + ? Colors.blueAccent.shade100 + : Color(0xFFEBEBF7), + // color: Color(0xFFE3F2FD), - ), - - ], + child: Column( + children: [ + Text( + "International", + style: TextStyle( + color: policyType == "international" + ? Colors.white + : Colors.black87, + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ], + ), + ), + )), + ], + ), ), - ], ), ), - - isDesktop ? - Expanded( - child: Row( - children: [ - - _buildPolicyCategoryList(isDesktop), - _buildPolicyCategory(isDesktop), - ], - ), - ) - - : Expanded( - child: Column( - children: [ - _buildPolicyCategoryList(isDesktop), - _buildPolicyCategory(isDesktop), - ], - ), - ) - + isDesktop + ? Expanded( + child: Row( + children: [ + _buildPolicyCategoryList(isDesktop), + _buildPolicyCategory(isDesktop), + ], + ), + ) + : Expanded( + child: Column( + children: [ + _buildPolicyCategoryList(isDesktop), + _buildPolicyCategory(isDesktop), + ], + ), + ) ], ), ); } - - Widget _buildPolicyCategoryList(bool isDesktop){ - return Container( + Widget _buildPolicyCategoryList(bool isDesktop) { + return Container( color: Colors.white, // color: Colors.blueGrey.shade200, width: isDesktop ? MediaQuery.of(context).size.width * 0.15 : null, - child: isDesktop ? Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - _buildPolicySubCategoryList(isDesktop) - - ], - ) + child: isDesktop + ? Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [_buildPolicySubCategoryList(isDesktop)], + ) : Container( - // color: Colors.amber, - child: Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - _buildPolicySubCategoryList(isDesktop) - ], - ), - ), - ), - + // color: Colors.amber, + child: Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [_buildPolicySubCategoryList(isDesktop)], + ), + ), + ), ); } Widget _buildPolicySubCategoryList(bool isDesktop) { List services = [ - "Flight", "Train", "Bus", "Taxi", "Forex","Accommodation", - "Insurance", "Visa", "Miscellaneous" + "Flight", + "Train", + "Bus", + "Taxi", + "Forex", + "Accommodation", + "Insurance", + "Visa", + "Miscellaneous" ]; return Expanded( @@ -195,64 +207,76 @@ class _PolicyState extends State{ scrollDirection: isDesktop ? Axis.vertical : Axis.horizontal, child: Flex( direction: isDesktop ? Axis.vertical : Axis.horizontal, - children: services.asMap().entries.map((entry) { - - int index = entry.key; - String service = entry.value; + int index = entry.key; + String service = entry.value; bool isSelected = selectedServiceIndex == index; return SizedBox( - width: 180, - height: isDesktop ? MediaQuery.of(context).size.height * 0.1 : 50, + width: isDesktop ? 180 : null, + height: isDesktop + ? max((MediaQuery.of(context).size.height * 0.085), 10) + : 45, + child: GestureDetector( + onTap: () { + print("Selected Services - $service - $index"); + setState(() { + selectedServiceIndex = index; + selectedService = service; - child:GestureDetector( - onTap :(){ - print("Selected Services - $service - $index"); - setState(() { - selectedServiceIndex = index; - selectedService = service; - }); - }, - - child: Container( - margin: EdgeInsets.all(8), - padding: EdgeInsets.all(8), - decoration: BoxDecoration( - // color: Colors.blue, - color: isSelected ? Colors.blueAccent.shade100 : Color(0xFFEBEBF7), - borderRadius: BorderRadius.circular(8), - ), - alignment: Alignment.center, - child: Text( - service, - style: TextStyle(color: isSelected ? Colors.white : Colors.black87, - fontSize: 13, - fontWeight: isSelected ? FontWeight.bold :FontWeight.w100), - ), - ), - ) - ); + if (selectedService == "Flight" || + selectedService == "Train") { + showClass = true; + showCost = true; + } else if (selectedService == "Accommodation") { + showClass = true; + showCost = false; + } else { + showClass = false; + showCost = false; + } + }); + }, + child: Container( + margin: EdgeInsets.all(8), + padding: isDesktop + ? EdgeInsets.all(8) + : EdgeInsets.only(top: 3, bottom: 3, left: 8, right: 8), + decoration: BoxDecoration( + // color: Colors.blue, + color: isSelected + ? Colors.blueAccent.shade100 + : Colors.grey.shade100, + // : Color(0xFFEBEBF7), + borderRadius: BorderRadius.circular(8), + ), + alignment: Alignment.center, + child: Text( + service, + style: TextStyle( + color: isSelected ? Colors.white : Colors.black87, + fontSize: 13, + fontWeight: + isSelected ? FontWeight.bold : FontWeight.w100), + ), + ), + )); }).toList(), - ), ), ); } - - Widget _buildPolicyCategory(bool isDesktop){ - return Expanded( + Widget _buildPolicyCategory(bool isDesktop) { + return Expanded( child: Container( - // color: Colors.brown.shade100, - color: Colors.white60, - - child: PolicyCriteria(isDesktop: isDesktop) - - - ), + // color: Colors.brown.shade100, + color: Colors.white60, + child: PolicyCriteria( + isDesktop: isDesktop, + isClass: showClass, + isCost: showCost, + selectedTab: selectedService)), ); } - - -} \ No newline at end of file +} diff --git a/lib/Screens/policy/policyCriteria.dart b/lib/Screens/policy/policyCriteria.dart index dfa6ae8..74481a1 100644 --- a/lib/Screens/policy/policyCriteria.dart +++ b/lib/Screens/policy/policyCriteria.dart @@ -1,157 +1,499 @@ +import 'package:dropdown_search/dropdown_search.dart'; import 'package:flutter/material.dart'; import '../../widgets/custom_text_field.dart'; import '../../widgets/custom_user_form.dart'; -class PolicyCriteria extends StatefulWidget{ +class PolicyCriteria extends StatefulWidget { + bool isDesktop; + String selectedTab; + bool isClass = true; + bool isCost = true; - bool isDesktop; - - PolicyCriteria({super.key, required this.isDesktop}); + PolicyCriteria( + {super.key, + required this.isDesktop, + required this.selectedTab, + required this.isClass, + required this.isCost}); @override - _PolicyCriteriaState createState() => _PolicyCriteriaState(); - + _PolicyCriteriaState createState() => _PolicyCriteriaState(); } -class _PolicyCriteriaState extends State{ +class _PolicyCriteriaState extends State { + String? selectedFirstApprovarType; + String? selectedService; - Widget build(BuildContext context){ + // bool isClass = true; + // bool isCost = true; + + @override + void initState() { + super.initState(); + fieldForPolicy(); + // selectedService = widget.selectedTab; + } + + void fieldForPolicy() { + print("fieldForPolicy - ${widget.selectedTab}"); + } + + Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - SizedBox(height: 15), - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Text("Selected Policy Criteria For Flight", - style: TextStyle( - fontSize: 16, - color:Colors.grey, - fontWeight: FontWeight.bold + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + "Selected Policy Criteria For ${widget.selectedTab} ", + style: TextStyle( + fontSize: 13, + color: Color(0xFF9E9DBD), + fontWeight: FontWeight.bold), ) - ,) - ],), - - - SizedBox(height: 15), + ], + ), + if (widget.isClass!) SizedBox(height: 15), Row( children: [ Expanded( child: Container( // color:Colors.grey, - padding: const EdgeInsets.only(top:5,bottom: 5,left:5, right: 5), + padding: + const EdgeInsets.only(top: 5, bottom: 5, left: 5, right: 5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - - Row( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("Class", style: TextStyle(fontSize: 15, fontWeight: FontWeight.w200, color: Colors.black)), - SizedBox(height: 5), - CustomTextFieldUserWrapper( - isFocused: false, - isDesktop: widget.isDesktop, - child: SizedBox( - height: 40, - child: TextField( - style: TextStyle(fontSize: 12), - // controller: controllers["Fname"], - // enabled: !isViewMode, - onChanged: (value) { }, - decoration: InputDecoration( - labelText: "Class", - labelStyle: TextStyle(fontSize: 12, color: Colors.grey), - floatingLabelBehavior: FloatingLabelBehavior.never, - border: InputBorder.none, - contentPadding: EdgeInsets.symmetric(vertical: 16), + if (widget.isClass!) + Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Class", + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w200, + color: Colors.black)), + SizedBox(height: 5), + CustomTextFieldUserWrapper( + isFocused: false, + isDesktop: widget.isDesktop, + child: SizedBox( + height: 40, + child: TextField( + style: TextStyle(fontSize: 12), + // controller: controllers["Fname"], + // enabled: !isViewMode, + onChanged: (value) {}, + decoration: InputDecoration( + labelText: "Class", + labelStyle: TextStyle( + fontSize: 12, color: Colors.grey), + floatingLabelBehavior: + FloatingLabelBehavior.never, + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric(vertical: 16), + ), ), ), ), - ), - - ], - ), - ], - ), - + ], + ), + ], + ), SizedBox(height: 10), - - Row( - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("Cost", style: TextStyle(fontSize: 15, fontWeight: FontWeight.w200, color: Colors.black)), - SizedBox(height: 5), - CustomTextFieldUserWrapper( - isFocused: false, - isDesktop: widget.isDesktop, - child: SizedBox( - height: 40, - child: TextField( - style: TextStyle(fontSize: 12), - // controller: controllers["Fname"], - // enabled: !isViewMode, - onChanged: (value) { }, - decoration: InputDecoration( - labelText: "Cost", - labelStyle: TextStyle(fontSize: 12, color: Colors.grey), - floatingLabelBehavior: FloatingLabelBehavior.never, - border: InputBorder.none, - contentPadding: EdgeInsets.symmetric(vertical: 16), + if (widget.isCost!) + Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Cost", + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w200, + color: Colors.black)), + SizedBox(height: 5), + CustomTextFieldUserWrapper( + isFocused: false, + isDesktop: widget.isDesktop, + child: SizedBox( + height: 40, + child: TextField( + style: TextStyle(fontSize: 12), + // controller: controllers["Fname"], + // enabled: !isViewMode, + onChanged: (value) {}, + decoration: InputDecoration( + labelText: "Cost", + labelStyle: TextStyle( + fontSize: 12, color: Colors.grey), + floatingLabelBehavior: + FloatingLabelBehavior.never, + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric(vertical: 16), + ), ), ), ), - ), - - ], - ), - ], - ), - - + ], + ), + ], + ), ], ), - - ), ), ], ), - SizedBox(height: 15), - + if (widget.isCost!) SizedBox(height: 15), Expanded( child: Container( - decoration: BoxDecoration( - border: Border.all( - color: Color(0xFFEBEBF7), - - ), + border: null, + // border: Border.all( + // color: Color(0xFFEBEBF7), + // ), borderRadius: BorderRadius.circular(8), // color: Colors.brown.shade200, ), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Container( + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: Container( + width: widget.isDesktop + ? MediaQuery.of(context).size.width * 0.62 + : 600, + child: Column( + children: [ + Container( + decoration: BoxDecoration( + color: Colors.grey.shade50, + border: Border.all( + color: Colors.grey.shade50, + ), + borderRadius: BorderRadius.circular(8)), + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + children: [ + Text( + "Approver Name", + style: TextStyle( + color: Color(0xFF9E9DBD), + fontWeight: FontWeight.bold, + fontSize: 12), + ), + Text( + "Notification", + style: TextStyle( + color: Color(0xFF9E9DBD), + fontWeight: FontWeight.bold, + fontSize: 12), + ), + Text( + "Select", + style: TextStyle( + color: Color(0xFF9E9DBD), + fontWeight: FontWeight.bold, + fontSize: 12), + ) + ], + ), + ), + SizedBox( + height: 200, + child: SingleChildScrollView( + scrollDirection: Axis.vertical, + child: Container( + // color: Colors.grey, + color: Colors.grey.shade50, + child: Column(children: [ + Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + children: [ + Text("Approver 1"), + CustomTextFieldUserWrapper( + isFocused: false, + isDesktop: widget.isDesktop, + child: SizedBox( + height: 40, + child: DropdownSearch( + selectedItem: + selectedFirstApprovarType, + // enabled: !isViewMode, + popupProps: PopupProps.menu( + // showSearchBox: true, + fit: FlexFit + .loose, // Allows flexible height + constraints: BoxConstraints( + maxHeight: 250), + ), + items: [ + "Approve", + "Notification", + ], + dropdownDecoratorProps: + DropDownDecoratorProps( + dropdownSearchDecoration: + InputDecoration( + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric( + horizontal: 1, + ), + ), + ), + dropdownBuilder: + (context, selectedItem) => + Align( + // Center-align selected item + alignment: + Alignment.centerLeft, + child: Text( + selectedItem ?? "Select", + style: TextStyle( + fontSize: 12, + color: Colors + .blueAccent), + ), + ), + onChanged: + (String? newValue) { + setState(() { + // Find the country_code based on selected country_name + selectedFirstApprovarType = + newValue; - child: Row( - children: [ - Expanded( - child: Container( - child: Text( - "policy Data 2" + // print("selectedUserType - $selectedUserType"); + + // if (selectedCountry!.isNotEmpty) { + // errorMessages.remove("country_code"); + // } + }); + }, + ), + ), + ), + Container( + height: 25, + width: 25, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.grey, + width: 2), + ), + child: Icon( + Icons.check_circle, + size: 20, + // color: Colors.green, + color: Colors.grey, + )), + ], + ), + ), + Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + children: [ + Text("Approver 2"), + CustomTextFieldUserWrapper( + isFocused: false, + isDesktop: widget.isDesktop, + child: SizedBox( + height: 40, + child: DropdownSearch( + selectedItem: + selectedFirstApprovarType, + // enabled: !isViewMode, + popupProps: PopupProps.menu( + // showSearchBox: true, + fit: FlexFit + .loose, // Allows flexible height + constraints: BoxConstraints( + maxHeight: 250), + ), + items: [ + "Approve", + "Notification", + ], + dropdownDecoratorProps: + DropDownDecoratorProps( + dropdownSearchDecoration: + InputDecoration( + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric( + horizontal: 1, + ), + ), + ), + dropdownBuilder: + (context, selectedItem) => + Align( + // Center-align selected item + alignment: + Alignment.centerLeft, + child: Text( + selectedItem ?? "Select", + style: TextStyle( + fontSize: 12, + color: Colors + .blueAccent), + ), + ), + onChanged: + (String? newValue) { + setState(() { + // Find the country_code based on selected country_name + selectedFirstApprovarType = + newValue; + + // print("selectedUserType - $selectedUserType"); + + // if (selectedCountry!.isNotEmpty) { + // errorMessages.remove("country_code"); + // } + }); + }, + ), + ), + ), + Container( + height: 25, + width: 25, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.green, + width: 2), + ), + child: Icon( + Icons.check_circle, + size: 20, + color: Colors.green, + // color: Colors.grey, + )), + ], + ), + ), + Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + children: [ + Text("Approver 3"), + CustomTextFieldUserWrapper( + isFocused: false, + isDesktop: widget.isDesktop, + child: SizedBox( + height: 40, + child: DropdownSearch( + selectedItem: + selectedFirstApprovarType, + // enabled: !isViewMode, + popupProps: PopupProps.menu( + // showSearchBox: true, + fit: FlexFit + .loose, // Allows flexible height + constraints: BoxConstraints( + maxHeight: 250), + ), + items: [ + "Approve", + "Notification", + ], + dropdownDecoratorProps: + DropDownDecoratorProps( + dropdownSearchDecoration: + InputDecoration( + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric( + horizontal: 1, + ), + ), + ), + dropdownBuilder: + (context, selectedItem) => + Align( + // Center-align selected item + alignment: + Alignment.centerLeft, + child: Text( + selectedItem ?? "Select", + style: TextStyle( + fontSize: 12, + color: Colors + .blueAccent), + ), + ), + onChanged: + (String? newValue) { + setState(() { + // Find the country_code based on selected country_name + selectedFirstApprovarType = + newValue; + + // print("selectedUserType - $selectedUserType"); + + // if (selectedCountry!.isNotEmpty) { + // errorMessages.remove("country_code"); + // } + }); + }, + ), + ), + ), + Container( + height: 25, + width: 25, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.green, + width: 2), + ), + child: Icon( + Icons.check_circle, + size: 20, + color: Colors.green, + // color: Colors.grey, + )), + ], + ), + ), + ]), + ), + ), + ) + ], + )), ), - ), + ], ), - ], + ), ), ), ), - ], ); } - -} \ No newline at end of file +} diff --git a/lib/widgets/custom_user_form.dart b/lib/widgets/custom_user_form.dart index a1977af..ef5ce74 100644 --- a/lib/widgets/custom_user_form.dart +++ b/lib/widgets/custom_user_form.dart @@ -21,10 +21,12 @@ class CustomTextFieldUserWrapper extends StatefulWidget { }); @override - _CustomTextFieldUserWrapperState createState() => _CustomTextFieldUserWrapperState(); + _CustomTextFieldUserWrapperState createState() => + _CustomTextFieldUserWrapperState(); } -class _CustomTextFieldUserWrapperState extends State { +class _CustomTextFieldUserWrapperState + extends State { @override Widget build(BuildContext context) { return Container( @@ -35,7 +37,7 @@ class _CustomTextFieldUserWrapperState extends State padding: widget.padding, decoration: BoxDecoration( // color: widget.color, - color: Color(0xFFF7F7FB), + // color: Color(0xFFF7F7FB), borderRadius: BorderRadius.circular(10), border: Border.all( color: widget.isFocused ? Color(0xFF78B4FC) : Color(0xFFD6D5E6), @@ -43,14 +45,13 @@ class _CustomTextFieldUserWrapperState extends State ), boxShadow: widget.isFocused ? [ - BoxShadow( - color: Color.fromRGBO(120, 180, 252, 0.3), - blurRadius: 10, - spreadRadius: 2, - offset: Offset(0, 4), - - ), - ] + BoxShadow( + color: Color.fromRGBO(120, 180, 252, 0.3), + blurRadius: 10, + spreadRadius: 2, + offset: Offset(0, 4), + ), + ] : [], ), child: widget.child, diff --git a/pubspec.lock b/pubspec.lock index 669a5a1..530505a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" bcrypt: dependency: "direct main" description: @@ -29,34 +29,34 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.19.0" + version: "1.19.1" cross_file: dependency: transitive description: @@ -101,10 +101,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" ffi: dependency: transitive description: @@ -196,18 +196,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.7" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -244,10 +244,10 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -260,10 +260,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" nested: dependency: transitive description: @@ -276,10 +276,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_provider_linux: dependency: transitive description: @@ -409,50 +409,50 @@ packages: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" stack_trace: dependency: transitive description: name: stack_trace - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.3" + version: "0.7.4" typed_data: dependency: transitive description: @@ -473,10 +473,10 @@ packages: dependency: transitive description: name: vm_service - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.3.1" web: dependency: transitive description: @@ -502,5 +502,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.6.1 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.27.0"