From 4a54b8ee832b1b474da7442b1a65bf3995ddd726 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Tue, 28 Apr 2026 16:42:07 +0200 Subject: [PATCH] improve url displaying --- .../widgets/share_bottom_sheet.dart | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/share_bottom_sheet.dart b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/share_bottom_sheet.dart index 71c90af5..244be430 100644 --- a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/share_bottom_sheet.dart +++ b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/share_bottom_sheet.dart @@ -29,7 +29,6 @@ import 'package:flutter_mozilla_components/flutter_mozilla_components.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:share_plus/share_plus.dart'; import 'package:skeletonizer/skeletonizer.dart'; -import 'package:weblibre/extensions/uri.dart'; import 'package:weblibre/features/geckoview/domain/providers/tab_session.dart'; import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart'; import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/qr_code.dart'; @@ -41,6 +40,8 @@ import 'package:weblibre/features/geckoview/features/tabs/data/entities/tab_mode import 'package:weblibre/features/sync/domain/repositories/sync.dart'; import 'package:weblibre/features/user/domain/repositories/general_settings.dart'; import 'package:weblibre/presentation/hooks/cached_future.dart'; +import 'package:weblibre/presentation/widgets/uri_breadcrumb.dart'; +import 'package:weblibre/presentation/widgets/url_icon.dart'; import 'package:weblibre/utils/ui_helper.dart' as ui_helper; Future showShareBottomSheet( @@ -117,7 +118,7 @@ class ShareBottomSheet extends HookConsumerWidget { children: [ // Header with URL and tracking status _ShareHeader( - url: effectiveUrl?.toString() ?? '', + url: effectiveUrl, urlWasCleaned: urlWasCleaned, hasTracking: showCleanerTile && !cleaner.applied, cleanerResult: showCleanerTile ? cleaner.result : null, @@ -219,7 +220,7 @@ class ShareBottomSheet extends HookConsumerWidget { } class _ShareHeader extends StatelessWidget { - final String url; + final Uri? url; final bool urlWasCleaned; final bool hasTracking; final UrlCleanerResult? cleanerResult; @@ -250,7 +251,7 @@ class _ShareHeader extends StatelessWidget { showDialog( context: context, builder: (context) => TrackingDetailsDialog( - currentUrl: url, + currentUrl: url.toString(), result: cleanerResult!, allowReferralMarketing: allowReferralMarketing, onApplySelectedRemovals: onApplySelectedRemovals, @@ -271,16 +272,18 @@ class _ShareHeader extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - url.uriDisplayString, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: TextStyle( - color: urlWasCleaned - ? colorScheme.primary - : colorScheme.onSurfaceVariant, - ), - ), + if (url != null) + UriBreadcrumb( + uri: url!, + icon: UrlIcon([url!], iconSize: 20), + style: TextStyle( + color: urlWasCleaned + ? colorScheme.primary + : colorScheme.onSurfaceVariant, + ), + ) + else + const SizedBox.shrink(), const SizedBox(height: 4), if (hasTracking) Row(