improve title

This commit is contained in:
Fabian Freund
2025-12-22 09:47:38 +01:00
parent fae6b774a6
commit ba4534a896
4 changed files with 21 additions and 19 deletions
@@ -42,6 +42,8 @@ class TabState extends WebPageInfo {
@override @override
String get title => super.title!; String get title => super.title!;
String get titleOrAuthority => (title.isNotEmpty) ? title : url.authority;
final EquatableImage? icon; final EquatableImage? icon;
@override @override
@@ -151,7 +151,7 @@ class TabMenu extends HookConsumerWidget {
await BookmarkEntryAddRoute( await BookmarkEntryAddRoute(
bookmarkInfo: jsonEncode( bookmarkInfo: jsonEncode(
BookmarkInfo( BookmarkInfo(
title: tabState.title, title: tabState.titleOrAuthority,
url: tabState.url.toString(), url: tabState.url.toString(),
).encode(), ).encode(),
), ),
@@ -152,7 +152,7 @@ class TabPreview extends HookConsumerWidget {
padding: const EdgeInsets.only(left: 6.0, top: 2.0), padding: const EdgeInsets.only(left: 6.0, top: 2.0),
child: Text( child: Text(
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
tabState.title, tabState.titleOrAuthority,
maxLines: 2, maxLines: 2,
style: tabState.isPrivate style: tabState.isPrivate
? const TextStyle(color: Colors.white) ? const TextStyle(color: Colors.white)
@@ -167,16 +167,14 @@ class TabPreview extends HookConsumerWidget {
return child!; return child!;
}, },
menuChildren: [ menuChildren: [
?onDeleteAll.mapNotNull( MenuItemButton(
(value) => MenuItemButton(
onPressed: () { onPressed: () {
value(tabState.url.host); onDeleteAll?.call(tabState.url.host);
}, },
leadingIcon: const Icon(MdiIcons.closeBoxMultiple), leadingIcon: const Icon(MdiIcons.closeBoxMultiple),
child: Text('Close all from ${tabState.url.host}'), child: Text('Close all from ${tabState.url.host}'),
), ),
),
], ],
child: IconButton( child: IconButton(
visualDensity: const VisualDensity( visualDensity: const VisualDensity(
@@ -184,13 +182,15 @@ class TabPreview extends HookConsumerWidget {
vertical: -4.0, vertical: -4.0,
), ),
onPressed: onDelete, onPressed: onDelete,
onLongPress: () { onLongPress: onDeleteAll != null
? () {
if (extendedDeleteMenuController.isOpen) { if (extendedDeleteMenuController.isOpen) {
extendedDeleteMenuController.close(); extendedDeleteMenuController.close();
} else { } else {
extendedDeleteMenuController.open(); extendedDeleteMenuController.open();
} }
}, }
: null,
icon: const Icon(Icons.close), icon: const Icon(Icons.close),
), ),
), ),
@@ -55,7 +55,7 @@ class WebsiteTitleTile extends HookConsumerWidget {
), ),
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
title: Text( title: Text(
info.title.whenNotEmpty ?? 'Untitled', info.title.whenNotEmpty ?? info.url.authority,
maxLines: 6, maxLines: 6,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
@@ -77,7 +77,7 @@ class WebsiteTitleTile extends HookConsumerWidget {
width: 24, width: 24,
), ),
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
title: Text(initialTabState.title.whenNotEmpty ?? 'Untitled'), title: Text(initialTabState.titleOrAuthority),
subtitle: UriBreadcrumb(uri: initialTabState.url), subtitle: UriBreadcrumb(uri: initialTabState.url),
), ),
), ),