diff --git a/lib/claimshistory.dart b/lib/claimshistory.dart index c68817b..d377bd6 100644 --- a/lib/claimshistory.dart +++ b/lib/claimshistory.dart @@ -317,11 +317,32 @@ class _ClaimHistoryPopupState extends State { print('stepData'); print(stepData); + Widget content = _getStepContentFromApi(stepData); + print('check'); + print(context); + + // // 🟡 Skip step if there's no valid content (e.g., ID NOT GENERATED case) + // if ((content as Column).children.isEmpty) { + // print( + // "Skipping step $stepTitleKey due to no valid content"); + // content = Text("No content available", + // style: TextStyle(color: Colors.grey)); + // // or `return Container()` + // } + + // if (content == null) { + // print( + // "Skipping step: $stepTitleKey due to no valid content"); + // return const SizedBox(); // Completely skip step + // } + return _buildStep( stepNumber: index + 1, title: _getStepTitleFromApi( stepTitleKey, stepData), - content: _getStepContentFromApi(stepData), + content: content, + + // content: _getStepContentFromApi(stepData), isLast: index == stepKeys.length - 1, ); }), @@ -338,7 +359,7 @@ class _ClaimHistoryPopupState extends State { height: 350, fit: BoxFit.cover, ), - Text( + const Text( 'No Available Claims', style: TextStyle( fontWeight: FontWeight.w500, @@ -362,6 +383,14 @@ class _ClaimHistoryPopupState extends State { bool isLast = false, }) { print(title); + print("contentss - $content"); + final noContent; + if ((content as Column).children.isEmpty) { + noContent = 0; + } else { + noContent = 1; + } + return Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -393,7 +422,7 @@ class _ClaimHistoryPopupState extends State { // Dotted line below circle (except for last step) if (!isLast) Container( - height: 70, // increase to extend line + height: noContent == 1 ? 70 : 25, // increase to extend line width: 2, margin: EdgeInsets.only(top: 4, bottom: 4), child: CustomPaint( @@ -406,23 +435,25 @@ class _ClaimHistoryPopupState extends State { SizedBox(width: 12), // Right Side: Step title and content + Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ title, - SizedBox(height: 8), - Container( - width: double.infinity, - padding: EdgeInsets.all(12), - decoration: BoxDecoration( - color: Color(0xFFF7F7F7), - borderRadius: BorderRadius.circular(8), - border: Border.all(color: Color(0xFFE0E0E0)), + if (noContent == 1) SizedBox(height: noContent == 0 ? 0 : 8), + if (noContent == 1) + Container( + width: double.infinity, + padding: EdgeInsets.all(12), + decoration: BoxDecoration( + color: Color(0xFFF7F7F7), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Color(0xFFE0E0E0)), + ), + child: content, ), - child: content, - ), - SizedBox(height: isLast ? 0 : 16), + if (noContent == 1) SizedBox(height: isLast ? 0 : 16), ], ), ), @@ -467,17 +498,59 @@ class _ClaimHistoryPopupState extends State { Widget _getStepContentFromApi(Map data) { List rows = []; + print("data - $data"); + + // bool hasDisplayFields(Map map) { + // for (var entry in map.entries) { + // if (entry.value is Map) { + // final innerMap = entry.value as Map; + // if (innerMap.containsKey('display_name') || + // innerMap.containsKey('display_value')) { + // print("display fields found"); + // return true; + // } + // } + // } + // return false; + // } + // + // if (!hasDisplayFields(data)) { + // print("❌ Skipping because no display fields found"); + // return SizedBox.shrink(); // or return an empty Container/Spacer if needed + // } + data.forEach((key, value) { - // Skip metadata fields + // Skip metadata if (key == 'modified_by' || key == 'modified_at') return; - String displayName = value['display_name'] ?? key; - String displayValue = value['display_value'] ?? 'N/A'; + if (value is Map) { + final displayName = value['display_name']; + final displayValue = value['display_value']; - rows.add(_buildHistoryListData(displayName, displayValue)); - rows.add(SizedBox(height: 6)); + if (displayName != null && displayValue != null) { + print("✅ displayName - $displayName, displayValue - $displayValue"); + rows.add(_buildHistoryListData(displayName, displayValue)); + rows.add(SizedBox(height: 6)); + } + } }); + // data.forEach((key, value) { + // // Skip metadata fields + // if (key == 'modified_by' || key == 'modified_at') return; + // print("ContentKey - $key"); + // print("Content - $value"); + // String displayName = value['display_name'] ?? key; + // String displayValue = value['display_value'] ?? 'N/A'; + // + // print("displayName - $displayName"); + // print("displayValue - $displayValue"); + // if (displayName == 'N/A' || displayValue == 'N/A') return; + // + // rows.add(_buildHistoryListData(displayName, displayValue)); + // rows.add(SizedBox(height: 6)); + // }); + return Column( crossAxisAlignment: CrossAxisAlignment.start, children: rows, @@ -512,6 +585,7 @@ class _ClaimHistoryPopupState extends State { } Widget _buildHistoryListData(String title, String value) { + print("_buildHistoryListData"); final displayValue = (value == null || value.trim().isEmpty) ? 'N/A' : value; diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 2ce5852..ff40429 100755 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,7 @@ import FlutterMacOS import Foundation +import file_picker import firebase_auth import firebase_core import google_sign_in_ios @@ -14,6 +15,7 @@ import smart_auth import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))