improve url displaying

This commit is contained in:
Fabian Freund
2026-04-28 16:42:07 +02:00
parent 899c078684
commit 4a54b8ee83
@@ -29,7 +29,6 @@ import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:skeletonizer/skeletonizer.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_session.dart';
import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart'; import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart';
import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/qr_code.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/sync/domain/repositories/sync.dart';
import 'package:weblibre/features/user/domain/repositories/general_settings.dart'; import 'package:weblibre/features/user/domain/repositories/general_settings.dart';
import 'package:weblibre/presentation/hooks/cached_future.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; import 'package:weblibre/utils/ui_helper.dart' as ui_helper;
Future<void> showShareBottomSheet( Future<void> showShareBottomSheet(
@@ -117,7 +118,7 @@ class ShareBottomSheet extends HookConsumerWidget {
children: [ children: [
// Header with URL and tracking status // Header with URL and tracking status
_ShareHeader( _ShareHeader(
url: effectiveUrl?.toString() ?? '', url: effectiveUrl,
urlWasCleaned: urlWasCleaned, urlWasCleaned: urlWasCleaned,
hasTracking: showCleanerTile && !cleaner.applied, hasTracking: showCleanerTile && !cleaner.applied,
cleanerResult: showCleanerTile ? cleaner.result : null, cleanerResult: showCleanerTile ? cleaner.result : null,
@@ -219,7 +220,7 @@ class ShareBottomSheet extends HookConsumerWidget {
} }
class _ShareHeader extends StatelessWidget { class _ShareHeader extends StatelessWidget {
final String url; final Uri? url;
final bool urlWasCleaned; final bool urlWasCleaned;
final bool hasTracking; final bool hasTracking;
final UrlCleanerResult? cleanerResult; final UrlCleanerResult? cleanerResult;
@@ -250,7 +251,7 @@ class _ShareHeader extends StatelessWidget {
showDialog( showDialog(
context: context, context: context,
builder: (context) => TrackingDetailsDialog( builder: (context) => TrackingDetailsDialog(
currentUrl: url, currentUrl: url.toString(),
result: cleanerResult!, result: cleanerResult!,
allowReferralMarketing: allowReferralMarketing, allowReferralMarketing: allowReferralMarketing,
onApplySelectedRemovals: onApplySelectedRemovals, onApplySelectedRemovals: onApplySelectedRemovals,
@@ -271,16 +272,18 @@ class _ShareHeader extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( if (url != null)
url.uriDisplayString, UriBreadcrumb(
maxLines: 2, uri: url!,
overflow: TextOverflow.ellipsis, icon: UrlIcon([url!], iconSize: 20),
style: TextStyle( style: TextStyle(
color: urlWasCleaned color: urlWasCleaned
? colorScheme.primary ? colorScheme.primary
: colorScheme.onSurfaceVariant, : colorScheme.onSurfaceVariant,
), ),
), )
else
const SizedBox.shrink(),
const SizedBox(height: 4), const SizedBox(height: 4),
if (hasTracking) if (hasTracking)
Row( Row(