From aa0a468d194e15bd2011ca887c75ed84060d5311 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Sun, 24 Mar 2024 02:46:39 +0100 Subject: [PATCH] Bug fixes --- lib/screens/bookmarks/ui/bookmark_item.dart | 4 +- lib/screens/onboarding/ui/onboarding.dart | 5 +- lib/screens/webview/ui/webview.dart | 84 ++++++++++++--------- 3 files changed, 53 insertions(+), 40 deletions(-) diff --git a/lib/screens/bookmarks/ui/bookmark_item.dart b/lib/screens/bookmarks/ui/bookmark_item.dart index 0f3c9e9..e766641 100644 --- a/lib/screens/bookmarks/ui/bookmark_item.dart +++ b/lib/screens/bookmarks/ui/bookmark_item.dart @@ -58,7 +58,7 @@ class BookmarkItem extends ConsumerWidget { child: ClipRRect( borderRadius: tabletMode ? BorderRadius.circular(28) : BorderRadius.circular(0), child: Builder( - builder: (context) { + builder: (ctx) { return ContextMenuWidget( menuProvider: (request) => Menu( children: [ @@ -93,7 +93,7 @@ class BookmarkItem extends ConsumerWidget { ), MenuAction( callback: () { - final box = context.findRenderObject() as RenderBox?; + final box = ctx.findRenderObject() as RenderBox?; Future.delayed(_durationTime).then( (value) => Share.share( bookmark.url!, diff --git a/lib/screens/onboarding/ui/onboarding.dart b/lib/screens/onboarding/ui/onboarding.dart index d0bc944..a3954f3 100644 --- a/lib/screens/onboarding/ui/onboarding.dart +++ b/lib/screens/onboarding/ui/onboarding.dart @@ -25,7 +25,10 @@ class Onboarding extends ConsumerWidget { return Center( child: ConstrainedBox( constraints: constraints.maxWidth > Sizes.tabletBreakpoint - ? const BoxConstraints(maxWidth: 500, maxHeight: 600) + ? BoxConstraints( + maxWidth: 500, + maxHeight: constraints.maxHeight > 800 ? 800 : constraints.maxHeight - 100, + ) : const BoxConstraints.expand(), child: Container( decoration: constraints.maxWidth > Sizes.tabletBreakpoint diff --git a/lib/screens/webview/ui/webview.dart b/lib/screens/webview/ui/webview.dart index 2c8d770..c36dd22 100644 --- a/lib/screens/webview/ui/webview.dart +++ b/lib/screens/webview/ui/webview.dart @@ -108,43 +108,53 @@ class WebViewScreen extends HookConsumerWidget { ), ], ), - PopupMenuButton( - itemBuilder: (context) => [ - PopupMenuItem( - onTap: () => Share.shareUri(Uri.parse(bookmark.url!)), - child: Row( - children: [ - const Icon(Icons.share_rounded), - const SizedBox(width: 12), - Flexible(child: Text(t.webview.share)), - ], - ), - ), - PopupMenuItem( - onTap: () => copyToClipboard( - key: ScaffoldMessengerKeys.root, - value: bookmark.url!, - successMessage: t.webview.linkCopiedClipboard, - ), - child: Row( - children: [ - const Icon(Icons.copy_rounded), - const SizedBox(width: 12), - Flexible(child: Text(t.webview.copyLinkClipboard)), - ], - ), - ), - PopupMenuItem( - onTap: () => openUrl(bookmark.url!), - child: Row( - children: [ - const Icon(Icons.open_in_browser_rounded), - const SizedBox(width: 12), - Flexible(child: Text(t.webview.openInSystemBrowser)), - ], - ), - ), - ], + Builder( + builder: (ctx) { + return PopupMenuButton( + itemBuilder: (context) => [ + PopupMenuItem( + onTap: () { + final box = ctx.findRenderObject() as RenderBox?; + Share.share( + bookmark.url!, + sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size, + ); + }, + child: Row( + children: [ + const Icon(Icons.share_rounded), + const SizedBox(width: 12), + Flexible(child: Text(t.webview.share)), + ], + ), + ), + PopupMenuItem( + onTap: () => copyToClipboard( + key: ScaffoldMessengerKeys.root, + value: bookmark.url!, + successMessage: t.webview.linkCopiedClipboard, + ), + child: Row( + children: [ + const Icon(Icons.copy_rounded), + const SizedBox(width: 12), + Flexible(child: Text(t.webview.copyLinkClipboard)), + ], + ), + ), + PopupMenuItem( + onTap: () => openUrl(bookmark.url!), + child: Row( + children: [ + const Icon(Icons.open_in_browser_rounded), + const SizedBox(width: 12), + Flexible(child: Text(t.webview.openInSystemBrowser)), + ], + ), + ), + ], + ); + }, ), ], ),